Add saving attributes for all channels

Fixes #61
Pull Request
Description
Saves the attributes for each channel with the channel name prepended to the final data array
Fixes #61
How Has This Been Tested?
Test plots plot

[ ] No
[x] Yes

Checklist:

[ ] My code follows OCF's coding style guidelines
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked my code and corrected any misspellings

Codecov Report

Merging #64 (3e6dc5e) into main (9392082) will decrease coverage by 0.10%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #64      +/-   ##
==========================================
- Coverage   14.26%   14.16%   -0.11%
==========================================
  Files           8        8
  Lines         694      699       +5
==========================================
  Hits           99       99
- Misses        595      600       +5

Impacted Files
Coverage Δ

satip/utils.py
21.58% <0.00%> (-0.81%)
:arrow_down:

Continue to review full report at Codecov.

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

From the plotting script showing all the metadata being saved:
<xarray.DataArray 'stacked_eumetsat_data' (y_geostationary: 298, x_geostationary: 615)>
dask.array<getitem, shape=(298, 615), dtype=int8, chunksize=(256, 256), chunktype=numpy.ndarray>
Coordinates:
    time             datetime64[ns] 2020-06-01T12:15:00
    variable         <U10 'cloud_mask'
  * x_geostationary  (x_geostationary) float64 2.7e+04 2.4e+04 ... -1.815e+06
    x_osgb           (y_geostationary, x_geostationary) float32 dask.array<chunksize=(256, 256), meta=np.ndarray>
  * y_geostationary  (y_geostationary) float64 4.198e+06 4.201e+06 ... 5.089e+06
    y_osgb           (y_geostationary, x_geostationary) float32 dask.array<chunksize=(256, 256), meta=np.ndarray>
Attributes:
    _satpy_id:                       !!python/object/apply:satpy.dataset.data...
    ancillary_variables:             []
    area:                            msg_seviri_rss_3km:\n  description: MSG ...
    cloud_mask__satpy_id:            !!python/object/apply:satpy.dataset.data...
    cloud_mask_ancillary_variables:  []
    cloud_mask_area:                 msg_seviri_rss_3km:\n  description: MSG ...
    cloud_mask_end_time:             2020-06-01T12:15:00
    cloud_mask_file_type:            grib_seviri_clm
    cloud_mask_long_name:            cloud_mask_classification
    cloud_mask_modifiers:            []
    cloud_mask_name:                 cloud_mask
    cloud_mask_orbital_parameters:   projection_longitude: 9.5\n
    cloud_mask_parameter_number:     7
    cloud_mask_platform_name:        Meteosat-10
    cloud_mask_reader:               seviri_l2_grib
    cloud_mask_resolution:           3000.403165817
    cloud_mask_sensor:               seviri
    cloud_mask_start_time:           2020-06-01T12:00:00
    cloud_mask_units:                1
    end_time:                        2020-06-01T12:15:00
    file_type:                       grib_seviri_clm
    long_name:                       cloud_mask_classification
    modifiers:                       []
    name:                            cloud_mask
    orbital_parameters:              projection_longitude: 9.5\n
    parameter_number:                7
    platform_name:                   Meteosat-10
    reader:                          seviri_l2_grib
    resolution:                      3000.403165817
    sensor:                          seviri
    start_time:                      2020-06-01T12:00:00
    units:                           1
<xarray.DataArray 'stacked_eumetsat_data' (y_geostationary: 298, x_geostationary: 615)>
dask.array<getitem, shape=(298, 615), dtype=int16, chunksize=(256, 256), chunktype=numpy.ndarray>
Coordinates:
    time             datetime64[ns] 2020-06-01T12:00:10.300682
    variable         <U6 'IR_016'
  * x_geostationary  (x_geostationary) float64 2.7e+04 2.4e+04 ... -1.815e+06
    x_osgb           (y_geostationary, x_geostationary) float32 dask.array<chunksize=(256, 256), meta=np.ndarray>
  * y_geostationary  (y_geostationary) float64 4.198e+06 4.201e+06 ... 5.089e+06
    y_osgb           (y_geostationary, x_geostationary) float32 dask.array<chunksize=(256, 256), meta=np.ndarray>
Attributes:
    IR_016__satpy_id:                              !!python/object/apply:satp...
    IR_016_ancillary_variables:                    []
    IR_016_area:                                   msg_seviri_rss_3km:\n  des...
    IR_016_calibration:                            reflectance
    IR_016_end_time:                               2020-06-01T12:00:10.300682
    IR_016_georef_offset_corrected:                True
    IR_016_modifiers:                              []
    IR_016_name:                                   IR_016
    IR_016_orbital_parameters:                     projection_altitude: 35785...
    IR_016_platform_name:                          Meteosat-10
    IR_016_reader:                                 seviri_l1b_native
    IR_016_resolution:                             3000.403165817
    IR_016_sensor:                                 seviri
    IR_016_standard_name:                          toa_bidirectional_reflectance
    IR_016_start_time:                             2020-06-01T11:55:10.365526
    IR_016_sun_earth_distance_correction_applied:  True
    IR_016_sun_earth_distance_correction_factor:   1.028235680057495
    IR_016_units:                                  %
    IR_016_wavelength:                             [1.5, 1.64, 1.78, 'µm']
    IR_039__satpy_id:                              !!python/object/apply:satp...
    IR_039_ancillary_variables:                    []
    IR_039_area:                                   msg_seviri_rss_3km:\n  des...
    IR_039_calibration:                            brightness_temperature
    IR_039_end_time:                               2020-06-01T12:00:10.300682
    IR_039_georef_offset_corrected:                True
    IR_039_modifiers:                              []
    IR_039_name:                                   IR_039
    IR_039_orbital_parameters:                     projection_altitude: 35785...
    IR_039_platform_name:                          Meteosat-10
    IR_039_reader:                                 seviri_l1b_native
    IR_039_resolution:                             3000.403165817
    IR_039_sensor:                                 seviri
    IR_039_standard_name:                          toa_brightness_temperature
    IR_039_start_time:                             2020-06-01T11:55:10.365526
    IR_039_units:                                  K
    IR_039_wavelength:                             [3.48, 3.92, 4.36, 'µm']
    IR_087__satpy_id:                              !!python/object/apply:satp...
    IR_087_ancillary_variables:                    []
    IR_087_area:                                   msg_seviri_rss_3km:\n  des...
    IR_087_calibration:                            brightness_temperature
    IR_087_end_time:                               2020-06-01T12:00:10.300682
    IR_087_georef_offset_corrected:                True
    IR_087_modifiers:                              []
    IR_087_name:                                   IR_087
    IR_087_orbital_parameters:                     projection_altitude: 35785...
    IR_087_platform_name:                          Meteosat-10
    IR_087_reader:                                 seviri_l1b_native
    IR_087_resolution:                             3000.403165817
    IR_087_sensor:                                 seviri
    IR_087_standard_name:                          toa_brightness_temperature
    IR_087_start_time:                             2020-06-01T11:55:10.365526
    IR_087_units:                                  K
    IR_087_wavelength:                             [8.3, 8.7, 9.1, 'µm']
    IR_097__satpy_id:                              !!python/object/apply:satp...
    IR_097_ancillary_variables:                    []
    IR_097_area:                                   msg_seviri_rss_3km:\n  des...
    IR_097_calibration:                            brightness_temperature
    IR_097_end_time:                               2020-06-01T12:00:10.300682
    IR_097_georef_offset_corrected:                True
    IR_097_modifiers:                              []
    IR_097_name:                                   IR_097
    IR_097_orbital_parameters:                     projection_altitude: 35785...
    IR_097_platform_name:                          Meteosat-10
    IR_097_reader:                                 seviri_l1b_native
    IR_097_resolution:                             3000.403165817
    IR_097_sensor:                                 seviri
    IR_097_standard_name:                          toa_brightness_temperature
    IR_097_start_time:                             2020-06-01T11:55:10.365526
    IR_097_units:                                  K
    IR_097_wavelength:                             [9.38, 9.66, 9.94, 'µm']
    IR_108__satpy_id:                              !!python/object/apply:satp...
    IR_108_ancillary_variables:                    []
    IR_108_area:                                   msg_seviri_rss_3km:\n  des...
    IR_108_calibration:                            brightness_temperature
    IR_108_end_time:                               2020-06-01T12:00:10.300682
    IR_108_georef_offset_corrected:                True
    IR_108_modifiers:                              []
    IR_108_name:                                   IR_108
    IR_108_orbital_parameters:                     projection_altitude: 35785...
    IR_108_platform_name:                          Meteosat-10
    IR_108_reader:                                 seviri_l1b_native
    IR_108_resolution:                             3000.403165817
    IR_108_sensor:                                 seviri
    IR_108_standard_name:                          toa_brightness_temperature
    IR_108_start_time:                             2020-06-01T11:55:10.365526
    IR_108_units:                                  K
    IR_108_wavelength:                             [9.8, 10.8, 11.8, 'µm']
    IR_120__satpy_id:                              !!python/object/apply:satp...
    IR_120_ancillary_variables:                    []
    IR_120_area:                                   msg_seviri_rss_3km:\n  des...
    IR_120_calibration:                            brightness_temperature
    IR_120_end_time:                               2020-06-01T12:00:10.300682
    IR_120_georef_offset_corrected:                True
    IR_120_modifiers:                              []
    IR_120_name:                                   IR_120
    IR_120_orbital_parameters:                     projection_altitude: 35785...
    IR_120_platform_name:                          Meteosat-10
    IR_120_reader:                                 seviri_l1b_native
    IR_120_resolution:                             3000.403165817
    IR_120_sensor:                                 seviri
    IR_120_standard_name:                          toa_brightness_temperature
    IR_120_start_time:                             2020-06-01T11:55:10.365526
    IR_120_units:                                  K
    IR_120_wavelength:                             [11.0, 12.0, 13.0, 'µm']
    IR_134__satpy_id:                              !!python/object/apply:satp...
    IR_134_ancillary_variables:                    []
    IR_134_area:                                   msg_seviri_rss_3km:\n  des...
    IR_134_calibration:                            brightness_temperature
    IR_134_end_time:                               2020-06-01T12:00:10.300682
    IR_134_georef_offset_corrected:                True
    IR_134_modifiers:                              []
    IR_134_name:                                   IR_134
    IR_134_orbital_parameters:                     projection_altitude: 35785...
    IR_134_platform_name:                          Meteosat-10
    IR_134_reader:                                 seviri_l1b_native
    IR_134_resolution:                             3000.403165817
    IR_134_sensor:                                 seviri
    IR_134_standard_name:                          toa_brightness_temperature
    IR_134_start_time:                             2020-06-01T11:55:10.365526
    IR_134_units:                                  K
    IR_134_wavelength:                             [12.4, 13.4, 14.4, 'µm']
    VIS006__satpy_id:                              !!python/object/apply:satp...
    VIS006_ancillary_variables:                    []
    VIS006_area:                                   msg_seviri_rss_3km:\n  des...
    VIS006_calibration:                            reflectance
    VIS006_end_time:                               2020-06-01T12:00:10.300682
    VIS006_georef_offset_corrected:                True
    VIS006_modifiers:                              []
    VIS006_name:                                   VIS006
    VIS006_orbital_parameters:                     projection_altitude: 35785...
    VIS006_platform_name:                          Meteosat-10
    VIS006_reader:                                 seviri_l1b_native
    VIS006_resolution:                             3000.403165817
    VIS006_sensor:                                 seviri
    VIS006_standard_name:                          toa_bidirectional_reflectance
    VIS006_start_time:                             2020-06-01T11:55:10.365526
    VIS006_sun_earth_distance_correction_applied:  True
    VIS006_sun_earth_distance_correction_factor:   1.028235680057495
    VIS006_units:                                  %
    VIS006_wavelength:                             [0.56, 0.635, 0.71, 'µm']
    VIS008__satpy_id:                              !!python/object/apply:satp...
    VIS008_ancillary_variables:                    []
    VIS008_area:                                   msg_seviri_rss_3km:\n  des...
    VIS008_calibration:                            reflectance
    VIS008_end_time:                               2020-06-01T12:00:10.300682
    VIS008_georef_offset_corrected:                True
    VIS008_modifiers:                              []
    VIS008_name:                                   VIS008
    VIS008_orbital_parameters:                     projection_altitude: 35785...
    VIS008_platform_name:                          Meteosat-10
    VIS008_reader:                                 seviri_l1b_native
    VIS008_resolution:                             3000.403165817
    VIS008_sensor:                                 seviri
    VIS008_standard_name:                          toa_bidirectional_reflectance
    VIS008_start_time:                             2020-06-01T11:55:10.365526
    VIS008_sun_earth_distance_correction_applied:  True
    VIS008_sun_earth_distance_correction_factor:   1.028235680057495
    VIS008_units:                                  %
    VIS008_wavelength:                             [0.74, 0.81, 0.88, 'µm']
    WV_062__satpy_id:                              !!python/object/apply:satp...
    WV_062_ancillary_variables:                    []
    WV_062_area:                                   msg_seviri_rss_3km:\n  des...
    WV_062_calibration:                            brightness_temperature
    WV_062_end_time:                               2020-06-01T12:00:10.300682
    WV_062_georef_offset_corrected:                True
    WV_062_modifiers:                              []
    WV_062_name:                                   WV_062
    WV_062_orbital_parameters:                     projection_altitude: 35785...
    WV_062_platform_name:                          Meteosat-10
    WV_062_reader:                                 seviri_l1b_native
    WV_062_resolution:                             3000.403165817
    WV_062_sensor:                                 seviri
    WV_062_standard_name:                          toa_brightness_temperature
    WV_062_start_time:                             2020-06-01T11:55:10.365526
    WV_062_units:                                  K
    WV_062_wavelength:                             [5.35, 6.25, 7.15, 'µm']
    WV_073__satpy_id:                              !!python/object/apply:satp...
    WV_073_ancillary_variables:                    []
    WV_073_area:                                   msg_seviri_rss_3km:\n  des...
    WV_073_calibration:                            brightness_temperature
    WV_073_end_time:                               2020-06-01T12:00:10.300682
    WV_073_georef_offset_corrected:                True
    WV_073_modifiers:                              []
    WV_073_name:                                   WV_073
    WV_073_orbital_parameters:                     projection_altitude: 35785...
    WV_073_platform_name:                          Meteosat-10
    WV_073_reader:                                 seviri_l1b_native
    WV_073_resolution:                             3000.403165817
    WV_073_sensor:                                 seviri
    WV_073_standard_name:                          toa_brightness_temperature
    WV_073_start_time:                             2020-06-01T11:55:10.365526
    WV_073_units:                                  K
    WV_073_wavelength:                             [6.85, 7.35, 7.85, 'µm']
    ancillary_variables:                           []
    area:                                          msg_seviri_rss_3km:\n  des...
    end_time:                                      2020-06-01T12:00:00
    georef_offset_corrected:                       True
    modifiers:                                     []
    orbital_parameters:                            projection_altitude: 35785...
    platform_name:                                 Meteosat-10
    reader:                                        seviri_l1b_native
    resolution:                                    3000.403165817
    sensor:                                        seviri
/home/runner/work/Satip/Satip/scripts/generate_test_plots.py:74: UserWarning: The default value for the *approx* keyword argument to OSGB will change from True to False after 0.18.
  ax = plt.axes(projection=ccrs.OSGB())
/home/runner/work/Satip/Satip/scripts/generate_test_plots.py:77: UserWarning: The default value for the *approx* keyword argument to OSGB will change from True to False after 0.18.
  transform=ccrs.OSGB(),
/usr/share/miniconda/lib/python3.9/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_coastline.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
/home/runner/work/Satip/Satip/scripts/generate_test_plots.py:74: UserWarning: The default value for the *approx* keyword argument to OSGB will change from True to False after 0.18.
  ax = plt.axes(projection=ccrs.OSGB())
/home/runner/work/Satip/Satip/scripts/generate_test_plots.py:77: UserWarning: The default value for the *approx* keyword argument to OSGB will change from True to False after 0.18.
  transform=ccrs.OSGB(),
/home/runner/work/Satip/Satip/scripts/generate_test_plots.py:74: UserWarning: The default value for the *approx* keyword argument to OSGB will change from True to False after 0.18.
  ax = plt.axes(projection=ccrs.OSGB())
/home/runner/work/Satip/Satip/scripts/generate_test_plots.py:77: UserWarning: The default value for the *approx* keyword argument to OSGB will change from True to False after 0.18.
  transform=ccrs.OSGB(),
    start_time:                                    2020-06-01T11:55:10.365526
<xarray.DataArray 'stacked_eumetsat_data' (y_geostationary: 891, x_geostationary: 1843)>
dask.array<getitem, shape=(891, 1843), dtype=int16, chunksize=(256, 256), chunktype=numpy.ndarray>
Coordinates:
    time             datetime64[ns] 2020-06-01T12:00:10.300682
    variable         <U3 'HRV'
  * x_geostationary  (x_geostationary) float64 2.8e+04 2.7e+04 ... -1.814e+06
    x_osgb           (y_geostationary, x_geostationary) float32 dask.array<chunksize=(256, 256), meta=np.ndarray>
  * y_geostationary  (y_geostationary) float64 4.198e+06 4.199e+06 ... 5.088e+06
    y_osgb           (y_geostationary, x_geostationary) float32 dask.array<chunksize=(256, 256), meta=np.ndarray>
Attributes:
    HRV__satpy_id:                              !!python/object/apply:satpy.d...
    HRV_ancillary_variables:                    []
    HRV_area:                                   msg_seviri_rss_1km:\n  descri...
    HRV_calibration:                            reflectance
    HRV_end_time:                               2020-06-01T12:00:10.300682
    HRV_georef_offset_corrected:                True
    HRV_modifiers:                              []
    HRV_name:                                   HRV
    HRV_orbital_parameters:                     projection_altitude: 35785831...
    HRV_platform_name:                          Meteosat-10
    HRV_reader:                                 seviri_l1b_native
    HRV_resolution:                             1000.134348869
    HRV_sensor:                                 seviri
    HRV_standard_name:                          toa_bidirectional_reflectance
    HRV_start_time:                             2020-06-01T11:55:10.365526
    HRV_sun_earth_distance_correction_applied:  True
    HRV_sun_earth_distance_correction_factor:   1.028235680057495
    HRV_units:                                  %
    HRV_wavelength:                             [0.5, 0.7, 0.9, 'µm']
    _satpy_id:                                  !!python/object/apply:satpy.d...
    ancillary_variables:                        []
    area:                                       msg_seviri_rss_1km:\n  descri...
    calibration:                                reflectance
    end_time:                                   2020-06-01T12:00:00
    georef_offset_corrected:                    True
    modifiers:                                  []
    name:                                       HRV
    orbital_parameters:                         projection_altitude: 35785831...
    platform_name:                              Meteosat-10
    reader:                                     seviri_l1b_native
    resolution:                                 1000.134348869
    sensor:                                     seviri
    standard_name:                              toa_bidirectional_reflectance
    start_time:                                 2020-06-01T11:55:10.365526
    sun_earth_distance_correction_applied:      True
    sun_earth_distance_correction_factor:       1.028235680057495
    units:                                      %
    wavelength:                                 [0.5, 0.7, 0.9, 'µm']


Search Library

Icon Request

Icon name:
Tags of this icon:
Use case:
Screenshots of similar icons:

https://remixicon.com/icon/menu-search-line

Thank you ❤
On Mon, 31 Jul 2023 at 4:05 PM, 章萧醇 @.***> wrote:

Closed #601 https://github.com/Remix-Design/RemixIcon/issues/601 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/Remix-Design/RemixIcon/issues/601#event-9965233746,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKUB53SGMPLWTJP65H3I3ITXS7CRZANCNFSM6AAAAAAZ2ILIXI
.
You are receiving this because you authored the thread.Message ID:
@.***>


Images don't show up in Android project when filename includes "-" in it

Here's what I expect to see:

Here's what I get instead (button has background color just to make sure it's positioned where it is):

My Android Phone is Samsung Note 8, with Android 8.0 (Oreo) on it.
Here's the layout I've built in XAML:
<Page
    x:Class="ZU.Assistant.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" FontFamily="Segoe UI Black">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Border Margin="0,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="40" Background="#FF66AEE7">
            <TextBlock Text="ZET UNIVERSE: ASSISTANT" FontSize="18" FontFamily="Segoe UI Black" Foreground="White" FontWeight="Bold" HorizontalAlignment="Left" Height="17" Padding="0" Margin="25,11,0,0" VerticalAlignment="Top" Width="325" />
        </Border>

        <Button Height="50" Width="150" Content="Hello world!" VerticalAlignment="Center" HorizontalAlignment="Center" Click="Button_Click"/>

        <Grid HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Height="52">
            <Button x:Name="speakToMeButton" HorizontalAlignment="Center" VerticalAlignment="Top" Width="50" Height="50" Padding="-2" Background="Transparent" BorderThickness="0">
                <Border Padding="0" Width="50" Height="50" Background="#FF66AEE7" CornerRadius="25" BorderThickness="1" BorderBrush="White">
                    <Image Width="48" Height="48" Source="ms-appx:///Assets/Mic-WF.png"/>
                </Border>
            </Button>
        </Grid>
    </Grid>
</Page>

Originally posted by @danielkornev in https://github.com/nventive/Uno/issue_comments#issuecomment-425720008

Hmm. Nope. So, followed the instructions:

Added nventive's NuGet package to Droid project
Added this code to Main.cs in Droid project (from the doc above), added call to it from Main.cs's constructor:

using System;
using Android.Runtime;
using Com.Nostra13.Universalimageloader.Core;
using Windows.UI.Xaml.Media;

namespace ZU.Assistant.Droid
{
    [global::Android.App.ApplicationAttribute(
        Label = "@string/ApplicationName",
        LargeHeap = true,
        HardwareAccelerated = true,
        Theme = "@style/AppTheme"
    )]
    public class Application : Windows.UI.Xaml.NativeApplication
    {
        public Application(IntPtr javaReference, JniHandleOwnership transfer)
            : base(new App(), javaReference, transfer)
        {
            ConfigureUniversalImageLoader();
        }

        private void ConfigureUniversalImageLoader()
        {
            // Create global configuration and initialize ImageLoader with this config
            ImageLoaderConfiguration config = new ImageLoaderConfiguration
                .Builder(Context)
                .Build();

            ImageLoader.Instance.Init(config);

            ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync;
        }
    }
}

Added image to the main page again:

<Page
    x:Class="ZU.Assistant.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" FontFamily="Segoe UI Black">
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Border Margin="0,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="40" Background="#FF66AEE7">
            <TextBlock Text="ZET UNIVERSE: ASSISTANT" FontSize="18" FontFamily="Segoe UI Black" Foreground="White" FontWeight="Bold" HorizontalAlignment="Left" Margin="25,11,0,0" VerticalAlignment="Top" Width="325" />
        </Border>

        <Grid HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Height="82" Margin="0,0,0,10">
            <Button x:Name="speakToMeButton" HorizontalAlignment="Center" VerticalAlignment="Top" Width="82" Height="82" Padding="-2" Background="Transparent" BorderThickness="0">
                <Border Padding="0" Width="80" Height="80" Background="#FF66AEE7" CornerRadius="41" BorderThickness="1" BorderBrush="White">
                    <Image Source="ms-appx:///Assets/Mic-WF.png" Width="76" Height="76"/>
               </Border>
            </Button>
        </Grid>
    </Grid>
</Page>

Expected Result:
Image is shown on the button.
Actual Result:
Image isn't shown in the Droid app on the device:

Ok, as you can see above, figured out what the bug is all about. It turns out, if you have "-" in the image's file name, Android won't show this image.

Thanks for the troubleshooting!
Indeed, Uno is either missing a warning, or an automatic conversion when using such resource names. I recall we had done some adjustments for this, but it must have been lost somehow.
Looks like this method:
https://github.com/nventive/Uno/blob/d4240473a05eb71acbcb698ca9af7c47a5cdd4bd/src/Uno.UI/UI/Xaml/Media/ImageSource.Android.cs#L358
Would require some update for the lookups.

Glad to help you guys. You do a fantastic job.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Jérôme Laban<EMAIL_ADDRESS>Sent: Tuesday, October 2, 2018 4:28:54 AM
To: nventive/Uno
Cc: Daniel Kornev; Mention
Subject: Re: [nventive/Uno] Images don't show up in Android project when filename includes "-" in it (#228)
Thanks for the troubleshooting!
Indeed, Uno is either missing a warning, or an automatic conversion when using such resource names. I recall we had done some adjustments for this, but it must have been lost somehow.
Looks like this method:
https://github.com/nventive/Uno/blob/d4240473a05eb71acbcb698ca9af7c47a5cdd4bd/src/Uno.UI/UI/Xaml/Media/ImageSource.Android.cs#L358
Would require some update for the lookups.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/nventive/Uno/issues/228#issuecomment-426116521, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFBSq2AxamwvspZ_03z0qM1WHfO2HoxWks5ugsFWgaJpZM4XA90r.


avepool is used nowhere

It's mostly for trying things out. You'll notice there's a lot of extra comments and stuff too, I've just been messing around to try to get stuff to work well.


Use TextInputLayout for login screen

Thanks!
It'll probably need a few style improvements later on, but it's a lot better than what we had :wink:


How do you access the status code of a URLError BadResponse error?

I'm trying to understand error handling for a URLError BadResponse in the Swift version of PromiseKit 3.0. I have an API that is intentionally returning a 404 response. Example:
firstly {

    return NSURLSession.POST("http://localhost:9000/api/", formData: ["foo":"bar"])

}.then { (data: NSData) -> Void in

    // process data

}.error { error in

    // handle error based on http status code: 403, 404, etc...
    // how can I get status code from "error"?
    print(error)
    print(error.dynamicType)
}

Printing "error" shows this in Xcode debug console:
BadResponse(<NSMutableURLRequest: 0x7fa51a7bd8e0> { URL: http://localhost:9000/api/ }, Optional(<3c3f786d 6c207665 7273696f 6e3d2231 2e302220 656e636f 64696e67 3d225554 462d3822 203f3e3c 68617368 3e3c6572 726f723e 636f756c 64206e6f 74206669 6e642073 74756479 20617364 663c2f65 72726f72 3e3c2f68 6173683e>), Optional(<NSHTTPURLResponse: 0x7fa51a7f64f0> { URL: http://localhost:9000/api/ } { status code: 404, headers {
"Access-Control-Allow-Origin" = "*";
"Cache-Control" = "no-store, no-cache, must-revalidate";
Connection = "Keep-Alive";
"Content-Length" = 92;
"Content-Type" = "; charset=utf-8";
Date = "Tue, 17 Nov 2015 14:49:24 GMT";
Expires = 0;
"Keep-Alive" = "timeout=5, max=100";
Pragma = "no-cache";
Server = Apache;
"X-Powered-By" = "PHP/5.6.10";
} }))

How would I get the 404 status code from the error using swift?

The NSHTTPURLResponse object is one of the keys in the error's userInfo dictionary and contains the status code. I believe you can access it like so:
let response: NSHTTPURLResponse = error.userInfo[PMKURLErrorFailingURLResponseKey]
print(response.statusCode)

But I have not done this in Swift, so let me know if this doesn't work.

That gave a complier error Value of type 'ErrorType' has no member 'userInfo' but I think it set me down the correct track. I have been able to get the statusCode using this:
if let response: URLError = error as? URLError {
    print(response.NSHTTPURLResponse.URL)
    print(response.NSHTTPURLResponse.statusCode)
    print(response.NSHTTPURLResponse.allHeaderFields)
}

// ALTERNATIVELY

switch error {
    case let response as URLError:
        print(response.NSHTTPURLResponse.statusCode)
        print(response.NSHTTPURLResponse.statusCode)
        print(response.NSHTTPURLResponse.allHeaderFields)
    default:
        print(error.dynamicType)
}

However, I haven't been able to figure out how to get the body of the response yet. Error.swift seems to show that URLError BadResponse knows about the body (i.e. NSData?) but doesn't seem to make it accessible:
case BadResponse(NSURLRequest, NSData?, NSURLResponse?)

Any thoughts on how to get the body? Thanks for the help!

"Enumeration > Associated Values" documentation for Swift showed me the correct syntax.
switch error {
case URLError.InvalidImageData(let request, let data):
    print("\(request) \(data)")

case URLError.UnderlyingCocoaError(let request, let data?, let response?, let nserror):
    print("\(request) \(data) \(response) \(nserror)")

case URLError.BadResponse(let request, let data?, let response?):
    print("\(request) \(data) \(response)")

case URLError.StringEncoding(let request, let data, let response):
    print("\(request) \(data) \(response)")

default:
    print(error.dynamicType)
}

https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.html#//apple_ref/doc/uid/TP40014097-CH12-ID148


Add a startTime and endTime to the AssetScan

          I think we also need to add a startTime and endTime to the AssetScan itself. The start time should be set from the the moment the AssetScan moves from Pending to Scheduled and scanEndTime should be set when the AssetScan moves to Done or Failed. That will allow us to calculate the duration the AssetScan really took to scan from the point we start creating resources. We can also add cleanupEndTime, which is the point when the cleanup finishes which will give us the full e2e time for an AssetScan.

Adding these fields is something we need anyway in order to implement a per AssetScan timeout and I'm sure there are other use cases too.
Originally posted by @sambetts-cisco in https://github.com/openclarity/vmclarity/pull/473#discussion_r1274864342

already available at https://github.com/openclarity/openclarity/blob/main/api/openapi.yaml#L2920


Tile for August Webinar

Related Issue
No response
Description
Considerations:
Date: August 28
Usual time
Presented by: steve
Title: TBD (@Hasmin-AC will confirm today or tomorrow)

@Hasmin-AC, please check that the information is correct. I can update the title if you have it today before 6 PM (GMT+2). Otherwise, @joepavitt, would you mind updating the title if it's defined by tomorrow or Friday? I'll be OOO those days.
@Steve-Mcl, I found that job title in an old tile, but on the team page, it says Senior Software Developer. Which one should we use?

The final title is "Managing Distributed Node-RED Deployments on the Edge" . Thanks!

Hi @@Hasmin-AC here's the updated tile


kfunc feature discovery on power

@viktormalik @danobi powerpc is supporting kfunc now, but the output bpftrace --info is reporting kfunc: false
Is the following snippet correct to figure out kfunc support?
if (!detect_prog_type(libbpf::BPF_PROG_TYPE_TRACING,
"sched_fork",
libbpf::BPF_TRACE_FENTRY,
&progfd))
goto out_false;

It seems that the fentry support on powerpc is somewhat broken.
Trying the latest Fedora:
# bpftrace --info
System
  OS: Linux 6.12.0-0.rc4.20241023gitc2ee9f594da8.41.fc42.ppc64le #1 SMP Wed Oct 23 15:46:20 UTC 2024
  Arch: ppc64le

Build
  version: v0.21.2
  LLVM: 19.1.0
[...]
  kfunc: no
[...]

I also tried to compile the basic fentry example from https://github.com/libbpf/libbpf-bootstrap and got:
# cd libbpf-bootstrap/examples/c
# make fentry
[...]
# ./fentry
[...]
libbpf: prog 'do_unlinkat': failed to attach: ERROR: strerror_r(-524)=22
libbpf: prog 'do_unlinkat': failed to auto-attach: -524
Failed to attach BPF skeleton

errno 524 is ENOTSUPP so it looks like fentry probes are not correctly supported by powerpc.


Schedule view is not completely preserving order

The schedule seems to be sorting things alphabetically and then some other sequencing.  It should be keeping the ordering based on what's the actual ordering.
On yap 2.4.0

its' not the JSON.  something with the calendar javascript library is not respecting that sequence / ordering

this will have to do for now... this will be addressed in fullcalendar 4.x  https://fullcalendar.io/docs/v4/eventOrder

related ticket: https://github.com/fullcalendar/fullcalendar/issues/2907

partial fix was released in 2.5.0

full calendar 4 was just released

fix is in 3.2.0 branch

will be in 3.1.1


cargo package VCS dirty check corner cases

Problem
During the investigation of #14955 and #14962, we found more corner cases that cargo package doesn't consider dirty. You don't even need to pass --allow-dirty flag to explicitly allow it. . .cargo_vcs_info.jsonshows no dirty at all. However, the actual packaged.crate` file contains dirty files.
Let's consider this virtual workspace:
./
├── foo/
│   ├── src/
│   ├── Cargo.toml
│   └── README.md -> ../README.md
├── Cargo.toml
├── LICENSE
└── README.md

# foo/Cargo.toml
[package]
name = "foo"
edition.workspace = true
license-file = "../LICENSE" # link to parent LICENSE

# Cargo.toml
[workspace]
members = ["foo"]
[workspace.package]
edition = "2015"

There are at least three corners case that

Symlinks — if you change README.md at workspace root level. When packaging it would be included. However, since PathSource::list_files list symlink as ordinary file. When doing dirty check, the naive path prefix check is not able to find the symlink source file dirty.
package.license-file and package.readme — they are copied during cargo package. PathSource::list_files doesn't even report them because they are not under the directory of the package.
Workspace inheritance — like changing workspace.package.edition to 2021 would actually make foo's Cargo.toml dirty, but the current dirty status check doesn't capture that.

Steps
See https://github.com/rust-lang/cargo/pull/14966
Possible Solution(s)
No response
Notes
No response
Version
cargo 1.85.0-nightly (769f622e1 2024-12-14)

9c17646f8a9699bc26dd33b7652b0d52c20b74ba

Options

We manually patch up each case
We check if the whole repo is dirty, instead of only the package

I re-implement this check in cargo-release so I catch it before the release process, not just publish.  It check if the workspace is clean (instead it should check if the whole repo is clean).  I implemented it this way because (1) its simpler and (2) people can hook into cargo-release and do their own thing so I can't exhaustively know all the files.
If we check the whole repo, potential broken workflows

An interactive user has a file edited for local development purposes that is unrelated to publishing

As its interactive, we have fewer guarantees.

A programmatic user (script) manually releases multiple packages in a workspace (so works on stable) and has to make files dirty for the release process of some but not all and so they selectively pass in --allow-dirty

I would assume that if they need to edit one, they need to edit all so unsure how likely this is to happen

BTW the doc says this:
https://github.com/rust-lang/cargo/blob/9c17646f8a9699bc26dd33b7652b0d52c20b74ba/src/doc/src/commands/cargo-package.md?plain=1#L60-L61
and this:
https://github.com/rust-lang/cargo/blob/9c17646f8a9699bc26dd33b7652b0d52c20b74ba/src/doc/src/commands/cargo-package.md?plain=1#L94
So it seems to look at the repository as a whole when it was designed.
https://github.com/rust-lang/cargo/issues/2063 and https://github.com/rust-lang/cargo/pull/2781 have some discussion around this. Haven't read through all of them.

Looking through that, it seems there was a larger problem being dealt with and there was some discussion of details but not too much on this point (except one person not wanting cargo to be opinionated).

Regarding potential solutions to fixing workspace inheritance, there are a couple of ideas

If workspace Cargo.toml is dirty, we consider the member's Cargo.toml dirty.

May have lots of false positives.
Easy to implement and maintain.

If workspace Cargo.toml is dirty, we check whether member's Cargot.toml has any inheritannce fields. If any, consider dirty.

Have less false positive. Irrelevant changes may still fail the dirtiness check.
May need to hardcode a list of inheritable fields. Easy to get out of sync.

Swap the workspace Cargo.toml from worktree version to index version. Do a member manifest normalization against it. And then compare two normalized mainfests

More precise.
Due to the limitation of Cargo internals, we need to refactor a lot of code to make Cargo accept in-memory manifests and workspace loading.
If the index version of workspace manifest is not compatible with the worktree workspace layout, for example missing some members, the manifest loading won't work.

Like the previous one, but do publish-normalization manifests for both worktree and index.

The most precise option.
Has the same drawback as the previous one.


Refactoring the Pipeline to use intermediate Query object

New pipeline stages are suggested instead of monolithic ParseRequestStage:
ParseRequestStage    --> is implementing in scope of current issue
         |
         \/
ConvertQueryParamsStage    --> to be implemented in a second step
         |
         \/
MergeQueryParamsStage   --> to be implemented in a second step
         |
         \/
ConstructResourceEntityStage   --> is implementing in scope of current issue

ParseRequestStage - for parsing URI info and store result rawQuery object in the context
ConvertQueryParamsStage - for converting explicit query parameters and store they as query object in the context
MergeQueryParamsStage - for merging query parameters from rawQuery and query and store result as mergedQuery in the context
ConstructResourceEntityStage - for constructing ResourceEntity based on  mergedQuery (or rawQuery in case of the first step of implementation) and store result in the context.


Add Checkbox Support

Currently, Uniform assumes that all inputs are strings / textboxes. We will need to add support for checkboxes, particularly so we can complete the basic car form example. It should be possible to:
valid: hasCar equals true;

Added support for checkboxes. The car form example is officially complete and works the way it was originally intended!
Unfortunately... When it comes to server side support, checkboxes kind of fall apart. The problem comes down to this, when the user submits a checked box, the browser sends the string "on", and when the user submits an unchecked box, the client sends nothing (as if the input did not exist at all).
To compensate for this, the server assumes that any input with the string "on" must be a checked box, and any input with no value must be an unchecked box. This is very bad, because a textbox with the string "on" will be interpreted correctly on the client (a string of value "on"), but will become a checked box on the server (a boolean of value true). Also an undefined identifier will throw an error on the client side, but will become an unchecked box (a boolean of value false) on the server.
You can even see this in car form. Give make or model the value "on" and submit. The client will accept that value, but the server will interpret it as true and error out (since true matches @filled is a TypeError). There is no easy way to address this, and I can only imagine it will get worse. Radio buttons don't submit any value either if no button is selected. This will make it impossible for the server to distinguish between false checkboxes and unselected radio buttons.
The only "easy" way I can think of to get around this would be to have Uniform encode the data in the special way. Currently, the browser sends the data and Uniform doesn't change the format. We could force the type to be included in the request as well, but that has its own issues. A malicious client could lie and send an incorrect type. That could easily cause the server validation to misbehave and result in false positives. I don't think this would be a safe option, there are too many ways it could be abused.
The "harder" way, would be to modify the language to include type information. I think there will need to be some syntax in Uniform to define a particular type, that way the server will force any data from the client to be that type with no ambiguity. Something along the lines of:
boolean: hasCar; // Expect hasCar to be a boolean
string: make; // Expect make to be a string
string: model; // Expect model to be a string

valid: hasCar and make matches /"."/ and model matches /"."/;

If the request input doesn't match the type specified by the code, then fail instantly and mark the request as invalid. Since the type information is stored in the Uniform code, it can be trusted and any invalid requests can be filtered out and blocked. Any thoughts @sawyernovak?

Whoops, forgot to put this in code review. Mah bad.

Spun off #48 to deal with the typing issue that was brought up here.


Expose "allow_requests_without_proxy_protocol" property under gatewayTopology.proxyProtocol

Describe the feature request
Currently, Istio allows to enable proxy protocol by using gatewayTopolocy.proxyProtocol config, see the guide - https://istio.io/latest/docs/ops/configuration/traffic-management/network-topologies/#proxy-protocol.
However, it is impossible to customize Envoy's Proxy Protocol filter. As a result, we end up with a default values for the Proxy Protocol Envoy Filter.
Basically, once the proxy protocol is enabled, Envoy will start to reject connections that are not using Proxy Protocol:

If the filter is enabled, the Proxy Protocol must be present on the connection (either version 1 or version 2). The standard does not allow parsing to determine if it is present or not. However, the filter can be configured to allow the connection to be accepted without the Proxy Protocol header (against the standard). See allow_requests_without_proxy_protocol.

The problem that we are facing is that we currently use AWS NLB (Network Load Balancer) with disabled Proxy Protocol. It is impossible to enable Proxy Protocol in AWS NLB, and at the same time enable Envoy Filter. Therefore, we would like to first add Envoy Filter with allow_requests_without_proxy_protocol set to false, then modify AWS NLB to enable Proxy Protocol, and eventually disable allow_requests_without_proxy_protocol.
This isn't possible by the existing configuration of proxyProtocol object. So, my proposal is to add a new property, allow_requests_without_proxy_protocol to the proxyProtocol object that will control the behavior of the same property from Envoy Proxy Protocol Filter.
Describe alternatives you've considered
The alternative which should work is to use the EnvoyFilter resource instead of proxyProtocol config property.
However, since we already have the proxyProtocol config, it would be nice to add this property.
Adding this property will allow existing ingresses to migrate to the Proxy Protocol without any downtime.
Affected product area (please put an X in all that apply)
[ ] Ambient
[ ] Docs
[ ] Dual Stack
[x] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Additional context

Make sense, this is a reasonable requirement

to apply this behavior using envoy filters use the following:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: proxy-protocol
  namespace: istio-system
spec:
  configPatches:
  - applyTo: LISTENER
    patch:
      operation: MERGE
      value:
        listener_filters:
        - name: proxy_protocol
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol"
            allow_requests_without_proxy_protocol: true
        - name: tls_inspector
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector"
  workloadSelector:
    labels:
      istio: ingressgateway

source

by the way, this is also necessary when you have internal traffic routing through the ingress gateway (e.g. knative services)

@alita-moore Yeah, you are right, it is possible using EnvoyFilter, but this is something that we try to avoid as much as possible. We were able to migrate to ProxyProtocol without downtime by using EnvoyFilter, and then switching to ProxyProtocol via gateway topology.

just out of curiosity why do you try to avoid it?


NgxFullCalendarModule not available

Describe the bug
On import of NgxFullCalendarModule from "fullcalendar" (because "ngx-fullcalendar" is not known, because it is named "fullcalendar" in pacakge.json (!) ), the name is not known.
To Reproduce
Steps to reproduce the behavior:

setup an angular-cli (angular 6) project
do all the steps for installation as mentioned on ngx-fullcalendar
See error on importing NgxFullCalendarModule in app.module.ts

Expected behavior
Proper import of NgxFullCalendarModule
Desktop (please complete the following information):

OS: Ubuntu 18.04
Browser: Firefox

Note:
Other declarations are not functioning as well, like (
import { FullCalendarOptions, EventObject } from 'ngx-fullcalendar';
)

OK ... so it was my fault. I simply overlooked the text, who said that the "fullcalendar..." stuff are peer dependencies :) . I was so used to take the first "install"-command, which is normally the install command for the module itself, so I missed the fact that there is no one for the module itself.
Maybe you add
npm install ngx-fullcalendar --save
to installation instruction ... just for really hasty guys like me. :) :)


[kube-up][scale-out] coredns pod not able to list resources from TP master

What happened:
coredns is in Running state, however the ready container is 0/1; coredns pod log has following error record:
...
Failed to list *v1.Endpoints: Get \"https://<IP_ADDRESS>:443/api/v1/endpoints?limit=500\u0026resourceVersion=0\": dial tcp <IP_ADDRESS>:443: connect: no route to host\n","stream":"stderr","time":"2022-02-14T19:07:10.303482004Z"}
Failed to list *v1.Service: Get \"https://<IP_ADDRESS>:443/api/v1/services?limit=500\u0026resourceVersion=0\": dial tcp <IP_ADDRESS>:443: connect: no route to host\n","stream":"stderr","time":"2022-02-14T19:07:20.515095501Z"}

What you expected to happen:
coredns able to list resources of TP master
How to reproduce it (as minimally and precisely as possible):
using code of poc-2022-01-30, run kube-up.sh to start 1 TP 1RP 1worker scale-out cluster,
Anything else we need to know?:
<IP_ADDRESS> is the node (physical) IP address of its TP master
Environment:

Arktos version (use kubectl version): poc-2022-0130, commit 2b6855
Cloud provider or hardware configuration:
OS (e.g: cat /etc/os-release):
Kernel (e.g. uname -a):
Install tools: kube-up scale-out 1+1x1
Network plugin and version (if this is a network-related bug):
Others:

Add previous investigation with flannel for your reference
For scale-up

cos OS:

coredns pod can be started successfully

pod can ping each others cross nodes.

ip neigh on master

# ip neigh
<IP_ADDRESS> dev eth0 lladdr 42:01:0a:28:00:01 REACHABLE

ip neigh on minion node

# ip neigh
<IP_ADDRESS> dev cni0 lladdr ba:6c:7a:2e:ff:e7 REACHABLE
<IP_ADDRESS> dev cni0 lladdr e6:b6:78:9c:0d:97 REACHABLE
<IP_ADDRESS> dev cni0 lladdr 16:e4:f7:91:d0:77 REACHABLE
<IP_ADDRESS> dev cni0 lladdr 4e:ca:cd:9e:a5:1d REACHABLE
<IP_ADDRESS> dev cni0  FAILED
<IP_ADDRESS> dev eth0 lladdr 42:01:0a:28:00:01 REACHABLE
<IP_ADDRESS> dev cni0  FAILED
<IP_ADDRESS> dev cni0 lladdr 92:48:35:fd:06:25 DELAY
<IP_ADDRESS> dev cni0 lladdr a2:c1:25:4c:a8:db REACHABLE
<IP_ADDRESS> dev cni0 lladdr 8a:d9:ac:5d:09:7c REACHABLE
<IP_ADDRESS> dev cni0 lladdr 22:4f:8b:43:8d:8c REACHABLE

ubuntu 20.04

cordons failed to start with the error in this issue

pod cannot ping cross nodes

ip neigh on master

ip neigh
<IP_ADDRESS> dev ens4 lladdr 42:01:0a:28:00:01 REACHABLE

ip neigh on minion nodes

# ip neigh
<IP_ADDRESS> dev ens4 lladdr 42:01:0a:28:00:01 REACHABLE

checked scale-out with mizar on minion nodes, run "ip neigh" also get  only <IP_ADDRESS> one and no any pods ip listed.
Suspect same issue with flannel:
https://github.com/flannel-io/flannel/issues/1155

This is the reason that coredns and kube-dns are crashing in scale out (both local and kube-up) and scale up (in kube-up only since local deploys coredns/kube-dns pod to master).
kube-dns:
2022-02-15T22:42:35.697490309Z stderr F E0215 22:42:35.697343       1 reflector.go:201] k8s.io/dns/pkg/dns/dns.go:189: Failed to list *v1.Endpoints: Get https://<IP_ADDRESS>:443/api/v1/endpoints?resourceVersion=0: dial tcp <IP_ADDRESS>:443: i/o timeout
2022-02-15T22:42:35.6975123Z stderr F E0215 22:42:35.697348       1 reflector.go:201] k8s.io/dns/pkg/dns/dns.go:192: Failed to list *v1.Service: Get https://<IP_ADDRESS>:443/api/v1/services?resourceVersion=0: dial tcp <IP_ADDRESS>:443: i/o timeout
...
2022-02-15T22:43:03.197113883Z stderr F I0215 22:43:03.196855       1 dns.go:219] Waiting for [endpoints services] to be initialized from apiserver...
2022-02-15T22:43:03.697056566Z stderr F I0215 22:43:03.696870       1 dns.go:219] Waiting for [endpoints services] to be initialized from apiserver...
2022-02-15T22:43:04.19701365Z stderr F I0215 22:43:04.196833       1 dns.go:219] Waiting for [endpoints services] to be initialized from apiserver...
2022-02-15T22:43:04.697068732Z stderr F I0215 22:43:04.696904       1 dns.go:219] Waiting for [endpoints services] to be initialized from apiserver...
2022-02-15T22:43:05.197105713Z stderr F I0215 22:43:05.196876       1 dns.go:219] Waiting for [endpoints services] to be initialized from apiserver...
2022-02-15T22:43:05.697058396Z stderr F F0215 22:43:05.696845       1 dns.go:209] Timeout waiting for initialization

2022-02-15T22:47:59.821381993Z stderr F E0215 22:47:59.821145       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1.Service: Get "https://<IP_ADDRESS>:6443/api/v1/services?limit=500&resourceVersion=0": dial tcp <IP_ADDRESS>:6443: i/o timeout

After added mizar daemon to TP master and tp master to mizar droplets, kubeup scale out 1x1 still have service crashing issue.
sindica2000@ying-scaleout-tp-1-master:/var/log$ cat kube-controller-manager.log | grep mizar-node-controller.go | grep mizar | grep Create | grep successfully
I0217 06:33:40.553971       1 mizar-node-controller.go:239] Mizar handled request successfully for mizar_node. key ying-scaleout-tp-1-master, eventType Create
I0217 06:34:20.331171       1 mizar-node-controller.go:239] Mizar handled request successfully for mizar_node. key ying-scaleout-rp-1-minion-group-2gt2, eventType Create
I0217 06:34:24.335101       1 mizar-node-controller.go:239] Mizar handled request successfully for mizar_node. key ying-scaleout-rp-1-master, eventType Create
I0217 06:34:24.943984       1 mizar-node-controller.go:239] Mizar handled request successfully for mizar_node. key ying-scaleout-rp-1-minion-group-w5f3, eventType Create

sindica2000@ying-dev1:~/go/src/sindica-arktos$ kubectl --kubeconfig cluster/kubeconfig.tp-1 get eps | grep host
ying-scaleout-rp-1-master-default--hostep-13576365                            host     4a:f7:5b:5c:20:54   <IP_ADDRESS>      <IP_ADDRESS>   32       Provisioned   aaa-default-network-subnet      aaa-default-network      13576365   ying-scaleout-rp-1-master              ehost-13576365   vehost-13576365           <IP_ADDRESS>   42:01:0a:28:00:03   2022-02-17T06:44:35.409457   0.522525
ying-scaleout-rp-1-minion-group-2gt2-default--hostep-13576365                 host     1a:3d:d2:71:73:a8   <IP_ADDRESS>      <IP_ADDRESS>   32       Init          aaa-default-network-subnet      aaa-default-network      1          ying-scaleout-rp-1-minion-group-2gt2   ehost-13576365   vehost-13576365           <IP_ADDRESS>   42:01:0a:28:00:04   2022-02-17T06:44:35.091425
ying-scaleout-rp-1-minion-group-w5f3-default--hostep-13576365                 host     12:1c:8d:2a:01:74   <IP_ADDRESS>      <IP_ADDRESS>   32       Init          aaa-default-network-subnet      aaa-default-network      1          ying-scaleout-rp-1-minion-group-w5f3   ehost-13576365   vehost-13576365           <IP_ADDRESS>   42:01:0a:28:00:05   2022-02-17T06:44:35.831306
ying-scaleout-tp-1-master-default--hostep-1                                   host     b2:30:08:53:36:7d   <IP_ADDRESS>      <IP_ADDRESS>     32       Provisioned   net0                            vpc0                     1          ying-scaleout-tp-1-master              ehost-1          vehost-1                  <IP_ADDRESS>   42:01:0a:28:00:02   2022-02-17T06:34:08.829725   1.330807
ying-scaleout-tp-1-master-default--hostep-13576365                            host     9a:f9:43:fb:8f:ec   <IP_ADDRESS>      <IP_ADDRESS>   32       Provisioned   aaa-default-network-subnet      aaa-default-network      13576365   ying-scaleout-tp-1-master              ehost-13576365   vehost-13576365           <IP_ADDRESS>   42:01:0a:28:00:02   2022-02-17T06:44:34.931540   0.842169
ying-scaleout-tp-1-master-default--hostep-13961987                            host     0e:4f:f1:bc:d9:a9   <IP_ADDRESS>      <IP_ADDRESS>     32       Provisioned   system-default-network-subnet   system-default-network   13961987   ying-scaleout-tp-1-master              ehost-13961987   vehost-13961987           <IP_ADDRESS>   42:01:0a:28:00:02   2022-02-17T06:34:08.555134   0.998453

sindica2000@ying-dev1:~/go/src/sindica-arktos$ kubectl --kubeconfig cluster/kubeconfig.tp-1 get pods -o wide -AT | grep ying-scaleout-rp-1-minion-group-w5f3 | grep -v netpod
system   default       mizar-daemon-jbc5b<PHONE_NUMBER>037907557   1/1     Running            0          9h    <IP_ADDRESS>    ying-scaleout-rp-1-minion-group-w5f3   <none>           <none>
system   kube-system   coredns-default-ying-scaleout-tp-1-7545f94d7c-qzz4z<PHONE_NUMBER>222740260   0/1     CrashLoopBackOff   135        9h    <IP_ADDRESS>    ying-scaleout-rp-1-minion-group-w5f3   <none>           <none>
system   kube-system   fluentd-gcp-v3.2.0-48bdq<PHONE_NUMBER>046417354   1/1     Running            0          9h    <IP_ADDRESS>    ying-scaleout-rp-1-minion-group-w5f3   <none>           <none>
system   kube-system   heapster-v1.6.0-beta.1-7c546f8546-twxbl<PHONE_NUMBER>539269132   2/2     Running            98         9h    <IP_ADDRESS>    ying-scaleout-rp-1-minion-group-w5f3   <none>           <none>
system   kube-system   kube-proxy-ying-scaleout-rp-1-minion-group-w5f3<PHONE_NUMBER>958703516   1/1     Running            0          9h    <IP_ADDRESS>    ying-scaleout-rp-1-minion-group-w5f3   <none>           <none>
system   kube-system   metrics-server-v0.3.3-5f994fcb77-6dzf6<PHONE_NUMBER>43355845    1/2     CrashLoopBackOff   116        9h    <IP_ADDRESS>    ying-scaleout-rp-1-minion-group-w5f3   <none>           <none>

Log from kubernetes-dashboard-848965699-jx5vx:
{"log":"2022/02/17 16:23:14 Error while initializing connection to Kubernetes apiserver. This most likely means that the cluster is misconfigured (e.g., it has invalid apiserver certificates or service account's configuration) or the --apiserver-host param points to a server that does not exist. Reason: Get https://<IP_ADDRESS>:443/version: dial tcp <IP_ADDRESS>:443: connect: no route to host\n","stream":"stdout","time":"2022-02-17T16:23:14.830337903Z"}

Log from kube-dns-autoscaler:
{"log":"E0217 16:26:46.478019       1 reflector.go:190] github.com/kubernetes-incubator/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient/k8sclient.go:94: Failed to list *v1.Node: Get https://<IP_ADDRESS>:443/api/v1/nodes: dial tcp <IP_ADDRESS>:443: getsockopt: no route to host\n","stream":"stderr","time":"2022-02-17T16:26:46.478272251Z"}

I still see issues in new tenant coredns pod. It is not 100% reproducible but should be able to reproduce with creating multiple tenants in same cluster.
{"log":"E0303 17:47:03.438944       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1.Endpoints: Get \"https://<IP_ADDRESS>:443/api/v1/endpoints?limit=500\u0026resourceVersion=0\": dial tcp <IP_ADDRESS>:443: i/o timeout\n","stream":"stderr","time":"2022-03-03T17:47:03.439111869Z"}
{"log":"[INFO] SIGTERM: Shutting down servers then terminating\n","stream":"stdout","time":"2022-03-03T17:47:09.34679178Z"}


Clusterer doesn't work for markers with the same coordinates?

Hey there,
gmaps4rails is great by the way - big thanks to everyone for their time committed to the project.
My issue - I've installed gmaps4rails and everything is working well, except for clustering for markers that share the same coordinates.

Here's my code for generating the markers and map:
<script type="text/javascript">
  window.setTimeout(function(){
    var handler;
    handler = Gmaps.build('Google', { markers: { maxRandomDistance: 5, do_clustering: true, clusterer_maxZoom: 20, clusterer_gridSize: 4, randomize: true } });
    handler.buildMap({
      provider: {
        disableDefaultUI: true,
        scrollwheel: false,
        zoomControl: true,
        streetViewControl: true,
        backgroundColor: '#B3D1FF'
      },
      internal: {
        id: 'map'
      }
    }, function() {
      var markers;
      markers = handler.addMarkers(<%=raw @marker.to_json %>);
      handler.bounds.extendWith(markers);
      handler.map.centerOn({
        lat: -25,
        lng: 135
      });
      handler.getMap().setZoom(4);
    }, 200);
  });
</script>

Thanks in advance for your help :)

sorry, I'm not sure what you expect :)

btw, please provide the generated script if you'd like me to debug

Hey mate - thanks for the speedy response :)
I was expecting the clusterer to continue clustering at high zoom levels. Couldn't get that working, but I ended up passing paramters like this and it worked the way I wanted it to:
Gmaps.build('Google', { markers: { randomize: true, maxRandomDistance: 10, clusterer: { maxZoom: 20, gridSize: 40 }}});
Thanks anyway - hopefully this helps anyone who runs into the same problem.


[flutter_tools] tree shake icons from web builds

Fixes https://github.com/flutter/flutter/issues/57181
This leverages the new functionality in the const finder tool landed in https://github.com/flutter/engine/pull/37257 to add an annotation staticIconProvider to the Icons class, allowing flutter build web --release builds to tree shake out of asset fonts any icons that are only ever referenced within that class (i.e. never used in user code). For the counter app, this means a reduction of 581,529 bytes to the compressed bundle (1,699,840 bytes uncompressed).
20,21c20,21
<     "flutter_gallery_web_build_dir_uncompressed_bytes": 63098880,
<     "flutter_gallery_web_build_dir_compressed_bytes": 43225489,
---
>     "flutter_gallery_web_build_dir_uncompressed_bytes": 61399040,
>     "flutter_gallery_web_build_dir_compressed_bytes": 42651804,
30,31c30,31
<     "basic_material_app_web_build_dir_uncompressed_bytes": 20766720,
<     "basic_material_app_web_build_dir_compressed_bytes": 7574697
---
>     "basic_material_app_web_build_dir_uncompressed_bytes": 19066880,
>     "basic_material_app_web_build_dir_compressed_bytes": 6993168

Rebased on https://github.com/flutter/flutter/pull/115682, this should land AFTER that PR is merged
local results:
Task result:
{
  "success": true,
  "data": {
    "hello_world_dart2js_size": 1076,
    "hello_world_dart2js_size_gzip": 340,
    "hello_world_canvaskit_wasm_size": 6688,
    "hello_world_canvaskit_wasm_size_gzip": 2720,
    "hello_world_canvaskit_js_size": 128,
    "hello_world_canvaskit_js_size_gzip": 40,
    "hello_world_flutter_js_size": 16,
    "hello_world_flutter_js_size_gzip": 4,
    "hello_world_web_build_dir_size": 19264,
    "hello_world_web_build_dir_size_gzip": 7224,
    "flutter_gallery_dart2js_size": 3400,
    "flutter_gallery_dart2js_size_gzip": 1004,
    "flutter_gallery_canvaskit_wasm_size": 6688,
    "flutter_gallery_canvaskit_wasm_size_gzip": 2720,
    "flutter_gallery_canvaskit_js_size": 128,
    "flutter_gallery_canvaskit_js_size_gzip": 40,
    "flutter_gallery_flutter_js_size": 16,
    "flutter_gallery_flutter_js_size_gzip": 4,
    "flutter_gallery_web_build_dir_size": 60172,
    "flutter_gallery_web_build_dir_size_gzip": 41688,
    "basic_material_app_dart2js_size": 1644,
    "basic_material_app_dart2js_size_gzip": 496,
    "basic_material_app_canvaskit_wasm_size": 6688,
    "basic_material_app_canvaskit_wasm_size_gzip": 2720,
    "basic_material_app_canvaskit_js_size": 128,
    "basic_material_app_canvaskit_js_size_gzip": 40,
    "basic_material_app_flutter_js_size": 16,
    "basic_material_app_flutter_js_size_gzip": 4,
    "basic_material_app_web_build_dir_size": 18684,
    "basic_material_app_web_build_dir_size_gzip": 6848
  },
  "detailFiles": [],
  "benchmarkScoreKeys": [
    "hello_world_dart2js_size",
    "hello_world_dart2js_size_gzip",
    "hello_world_canvaskit_wasm_size",
    "hello_world_canvaskit_wasm_size_gzip",
    "hello_world_canvaskit_js_size",
    "hello_world_canvaskit_js_size_gzip",
    "hello_world_flutter_js_size",
    "hello_world_flutter_js_size_gzip",
    "hello_world_web_build_dir_size",
    "hello_world_web_build_dir_size_gzip",
    "flutter_gallery_dart2js_size",
    "flutter_gallery_dart2js_size_gzip",
    "flutter_gallery_canvaskit_wasm_size",
    "flutter_gallery_canvaskit_wasm_size_gzip",
    "flutter_gallery_canvaskit_js_size",
    "flutter_gallery_canvaskit_js_size_gzip",
    "flutter_gallery_flutter_js_size",
    "flutter_gallery_flutter_js_size_gzip",
    "flutter_gallery_web_build_dir_size",
    "flutter_gallery_web_build_dir_size_gzip",
    "basic_material_app_dart2js_size",
    "basic_material_app_dart2js_size_gzip",
    "basic_material_app_canvaskit_wasm_size",
    "basic_material_app_canvaskit_wasm_size_gzip",
    "basic_material_app_canvaskit_js_size",
    "basic_material_app_canvaskit_js_size_gzip",
    "basic_material_app_flutter_js_size",
    "basic_material_app_flutter_js_size_gzip",
    "basic_material_app_web_build_dir_size",
    "basic_material_app_web_build_dir_size_gzip"
  ],
  "reason": "success"
}

Should be rebased on this engine roll once it merges: https://github.com/flutter/flutter/pull/116814

Just wanted to say thanks for this once merged! Me and my team are unbelievably eager for this change.

How do users know that their files are being minified? Do we spit out any output of "hey your icon files are being tree-shaken -> success they're 90% smaller now!!" or similar?
I'm asking because if this process is totally transparent, and the user doesn't know about it, it can be very jarring to debug issues with the font, and we'll probably get bugs about tofu boxes "only in prod".
This is the use case I'm concerned about:

The app uses 5 icons from the font, it gets tree-shaken to those 5. Deploy to prod.
The app now uses 6 icons from the font, it gets tree-shaken to those 6. Deploy to prod.
The user refreshes, but some cache (the webworker's/browser's/cdn's...), returns the old font with only 5 icons (because their filename is the same?).
The user sees a tofu box in production for the first time ever -> bug.

I'm not a fan of adding content hashes to the name of assets, but in this case it seems somewhat warranted, since each app's builds can modify in any way the incoming font file from the package?

Oops, sorry, I missed this comment. Chatted offline, and agreed to add an explicit non-verbose log message indicating font tree shaking happened (and the flag to opt-out) and then a TODO to do content hashing.

I don't know why but I upgraded Flutter and now when I generate the release APK it is taking 9-10 times as it used to take before. Only change I see in console is
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 1876 bytes (99.9% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app. Running Gradle task 'assembleRelease'...
Output of flutter doctor
`Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.5, on Pop!_OS 22.04 LTS
6.2.6-76060206-generic, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.79.2)
[✓] Connected device (3 available)
[✓] Network resources
• No issues found!
`
Is it possible this could be due to tree shake?

I don't know why but I upgraded Flutter and now when I generate the release APK it is taking 9-10 times as it used to take before. Only change I see in console is
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 1876 bytes (99.9% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app. Running Gradle task 'assembleRelease'...
Output of flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.5, on Pop!_OS 22.04 LTS
6.2.6-76060206-generic, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.79.2)
[✓] Connected device (3 available)
[✓] Network resources

• No issues found!

Is it possible this could be due to tree shake?

I don't know why but I upgraded Flutter and now when I generate the release APK it is taking 9-10 times as it used to take before. Only change I see in console is
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 1876 bytes (99.9% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app. Running Gradle task 'assembleRelease'...
Output of flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.5, on Pop!_OS 22.04 LTS
6.2.6-76060206-generic, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.79.2)
[✓] Connected device (3 available)
[✓] Network resources

• No issues found!

Is it possible this could be due to tree shake?

I would recommend filing a new issue for this. This change is specific to web builds, and thus unrelated.

Is this available in stable yet ? If so, it doesn't seem to work on my tests.


fixing blocknumber issue

#99

Hi @joshstevens19
Can you review this PR?

Thanks for the PR - have you tested this out? can you add a description in this also

yes I've tested it on all evm chains (We are getting historical data for multiple protocols and I've used it for that)

Issue:
The blocknumber in the call wasn't changing the block number that the request was executing. After some digging, I noticed that the implementation of calling the multicall contract on an specific block is not correct.
 const callParams = [];
 callParams.push(options.blockNumber);
 const contractResponse = (await contract.methods
        .aggregate(this.mapCallContextToMatchContractFormat(calls))
        .call(...callParams)) as AggregateContractResponse;

After I changed it to this, it worked normally
const contractResponse = (await contract.methods
        .aggregate(this.mapCallContextToMatchContractFormat(calls))
        .call(...callParams)) as AggregateContractResponse;
        .call({}, blockNumber)) as AggregateContractResponse;

@joshstevens19 Can you check this PR please?
Is there anything else that I need to add?

sorry for delay merged - https://github.com/joshstevens19/ethereum-multicall/releases/tag/2.26.0


AWS assume role not working

slack discussion: https://astronomer.slack.com/archives/C0387PMM2E7/p1687769374312629

@phanikumv and I created a user in AWS and a custom trust policy, looks like it work waiting for the user response

@pankajastro whats the status on this?

@pankajastro whats the status on this?

This got resolved for customer I believe after the upgrade. ZD ticket https://astronomer.zendesk.com/agent/tickets/21845


Nop reconciliations should not emit events

Related to: https://github.com/knative/pkg/issues/1520
https://github.com/knative-sandbox/eventing-autoscaler-keda/blob/2e095245e788bd4b7edce8c77fe5518cf6994e85/pkg/reconciler/crd/reconciler.go#L129
/kind bug
/kind cleanup

/remove-lifecycle stale


Added files for the rocky surface world with a temp model to be changed later

The readme is actually the same. Git was giving me a hard time about it but the only change is actually 2 lines at the bottom. I'm still getting the hang of Git...

After merging, something seems to be a bit off with the README.md file. Looks like some characters were added in front of several lines...


ARIA attributes for Swiper Elements

This is a (multiple allowed):

[ ] bug

[x] enhancement

[x] feature-discussion (RFC)

Swiper Version: to be discussed / implemented

Platform/Target and Browser Versions: all

What you did
Hey everyone,
first of all, great work with swiper. I'm using it on every projects which requires some swiping mechanism. So for so good.
In my current project I have to improve the code with some ARIA labels. So far, there aren't any. That's why I wan't to open an discussion / feature request about weather or not to implement them.
Looking forward hearing your ideas.
Cheers,
Daniel
Edit: To make it clear: Surely there's the option a11y: true, but it's not what I'm looking for, because it's "just keyboard accessibility"
Expected Behavior
Swiper uses proper ARIA labels, see: MDN - Using the slider role
Actual Behavior
No ARIA labels / attributes at all.

Did you set a11y: true? Also, @julmot proposed on #2158 changing the default to true to make Swiper instances more accessible.

@hacknug Yes, i did. I've been adding further information with:

Edit: To make it clear: Surely there's the option a11y: true, but it's not what I'm looking for, because it's "just keyboard accessibility"

Can you elaborate what attributes you're missing?

Hey there,
sorry for the late answer, have been busy.
Well, if you ask this way: I think that an element around the "buttons" with a certain role is missing. From here on I can't answer you question any further because, weather which role we're going to use we'll get different answers. Which leads to another question: What is the proper role, is it carousel, listbox or anything else?
But to stress the initial question a bit more:

Shouldn't there an "Slide X of Y" ARIA indicator
Shouldn't a slide have an aria-hidden="XXXX" declaration?
Shouldn't there an ARIA element around the navigation elements

All in all I'm having ARIA Live Regions in mind.
Cheers,
Daniel

Daniel, please inspect the DOM. Most of the things you've mentioned are already there, e.g. the live region.

Hey again,
I did, it just uses aria-live on the element with the CSS class "swiper-notification". Doesn't it have to be on the parent / root element, the swiper-container itself? Maybe my bad!?
Again, on slides i don't see any aria-hidden="XXXX" declarations. I'm using version 3.4.2 via bower, my global swiper options:
swiperOptions: {
    speed: jQuery.fx.speeds._default,

    autoHeight: false,
    updateOnImagesReady: true,
    lazyLoadingInPrevNext: true,
    centeredSlides: true,

    //ui
    grabCursor: true,

    // pagination
    pagination: '.swiper-pagination',
    paginationClickable: true,

    // arrows
    prevButton: '.swiper-button-prev',
    nextButton: '.swiper-button-next',

    // ARIA
    a11y: true,
    prevSlideMessage: 'Vorheriger Slide.',
    nextSlideMessage: 'Nächster Slide.',
    firstSlideMessage: 'Dies ist der erste Slide.',
    lastSlideMessage: 'Dies ist der letzte Slide.',
    paginationBulletMessage: 'Gehe zu slide {{index}}',
}

If swiper is perfectly ARIA ready then we'll find and someone can close this ticket! Just wanted to make sure it's the best out there! :)
Cheers

Did this aria-hidden issue resolved?

Don't close.


:sparkles: Add test for converting to Name

Missing weapon:
Some("Weapon name 'PrimordialJadeGreatSword' does not exist")
Some("Weapon name 'WineAndSong' does not exist")
Some("Weapon name 'EndOfTheLine' does not exist")
Some("Weapon name 'KunwusWyrmbane' does not exist")
Some("Weapon name 'PrimordialJadeVista' does not exist")

Fix weapon name
PrimordialJadeGreatSword → TestWeapons
WineAndSong → WindAndSong
EndOfTheLine → ElegyOfTheEnd
KunwusWyrmbane → TestWeapons
PrimordialJadeVista → TestWeapons


verify checksum of android image after download from mirror

Thanks, could you sign the commit with git commit -a -s --amend?

Thanks, could you sign the commit with git commit -a -s --amend?

I pushed the new commit
Thanks for this awesome project!


Unable to proxy PubSub calls programmatically without setting Environment Variables

Environment details

OS: macOs
.NET version: 3.1.102
Package name and version: Google.Cloud.PubSub.V1 - Version: 1.1.0

Steps to reproduce

Attempt to proxy pubsub requests programmatically without setting environment variables.
When setting the proxy as follows, only the oauth token request is proxied:

 ServiceAccountCredential credential = new ServiceAccountCredential(
               new ServiceAccountCredential.Initializer(serviceAccountEmail)
               {
                   Scopes = PublisherServiceApiClient.DefaultScopes,
                   HttpClientFactory = new ProxySupportedHttpClientFactory()
               }.FromPrivateKey(private_key));

Even when using System.Net.WebRequest.DefaultWebProxy = new WebProxy("http://localhost:8888", false) it seems like it's ignored.

It seems like the only option available to proxy the grpc request to pubsub is through environment variables?
Is there any api available in the library that would allow us to define an http proxy (with authentication) through code rather than rely on grpc to pick them up from the environment?
Thanks!

No, I don't believe Grpc.Core supports programmatically specifying a proxy, no. (This issue and this one didn't mention any alternatives, for example.)
Until Grpc.Core supports this, we can't support it in client libraries. With the next major version (targeting GAX v3.x) it should be possible to use Grpc.Net.Client which probably does support proxies - although I know the PubSub client specifies some gRPC channel options which may not be supported by Grpc.Net.Client.
I'd recommend filing an issue on the gRPC repo and referring to this one for context. (I'll then subscribe to that issue so I can take advantage of any suggestions or changes.)

Thanks a ton for the quick response @jskeet . I've went ahead with your suggestion and will wait to hear back from that team.

I'm going to close this issue for now as at least right now there's nothing else to do here; I've subscribed to the issue you've raised though, and we can add support in the libraries if it becomes available in gRPC.

Sounds fine to me - thanks for your help on this @jskeet!


Where condition on an include appears not to work

Is it supported?
I have an entity Product, which has a collection of ProductListItems. ProductListItem is a join table from Product to ListItem. ListItem has in turn a List (that it belongs to). So one List has many list items.
I want to select all products, and include each products list items
var qry = ctxt.Set.AsNoTracking().AsQueryable();
qry Include( p => p.ListItems)
but only for those list items whose list belongs to a certain tenant. I tried
qry.Include(p => p.ListItems.Where(li => li.ListItem.List.TenantId == 7).Select( pli => pli));
And
qry.Include(p => p.ListItems.Where(li => li.ListItem.List.TenantId == 7));
Both give this error:
System.InvalidOperationException: 'The property expression 'p => {from ProductListItem li in [_6].ListItems where ([li].ListItem.List.TenantId == __FilterByTenantId_0) select [li]}' is not valid. The expression should represent a property access: 't => t.MyProperty'. For more information on including related data, see http://go.microsoft.com/fwlink/?LinkID=746393.'
Is there a way to filter the included collection?

Duplicate of #1833


Create Universidade Anhanguera

Please create file to aedu.com domain is the domain for email service anhanguera university, which owns the site public www.anhanguera.com

@rauldoliveira Flagging as inactive.


test/depsolve: use strings for pytest.skip()

The pytest.skip() argument must be a string.  Calling it with an exception produces an error.

I just triggered rebase as #1859 has been merged


Unable to download private embedded videos

Today I'm suddenly not able to download private vimeo videos
I get 'No Injection occur' and then the logo gets injected to the video but no download options show up, I would have liked to share the link so you can reproduce it on your end, but since It's a private video it won't show up on your side
I hope you have access to some private vimeo videos that you can check this one.
I appreciate the work you have done in this extension, and hope that this problem can be easily fixed (I'm willing to help, my js skills aren't good though).
Thanks in advance,

After a bit of tinkering, it seems the problems arises because the config file for private videos has changed
it gives the following instead of the fat JSON
{"message": "Because of its privacy settings, this video cannot be played here.", "title": "Sorry", "view": 7}
We'd need a workaround for this

Hm, seam Vimeo provides some changing in its player. I'll try to check it tomorrow.
@AnessZurba thank you for your open issue.

@AnessZurba just check on private videos which I have and everything work as expected. Maybe you could give me temporary access (by email necessary access data) to your private video to analyze and fix your issue.

@ycherniavskyi
Just to make sure, the error occurs when you try the extension on a video that is set to be hidden from vimeo, but allowed as embedded on a fixed set of domains (a whitelist).
Is this what you have checked?
I think my initial post wasn't clear enough on that, sorry

@AnessZurba it seems that to get such options (a whitelist and etc.) I need to have a paid account, which I haven't ☹.
Could you give me temporary access to such video or add my domain to it?

I don't have a paid account either, my friend registered for a 30 days trial to reproduce the behaviour,
I'll ask him to add you to the whitelist of such a video
Do you have a website that you can embed the video into?

@AnessZurba yes I have my blog (which unfortunately did not get the necessary amount of love for a long time 😊) - devlab21.com. So you add my blog domain to whitelist and give me the embedded code snippet to a video for the test, and will fix the issue asap.

OK
I'll register for a trial membership and do it

<iframe src="https://player.vimeo.com/video/336840487" width="640" height="266" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
here you go

@AnessZurba it is strange, but I can inject downloader for the embedded video which you provide without any problem.

Strange indeed, please check your email

@AnessZurba do you have this problem with the new extension version? Could I close the issue?

Hi @ycherniavskyi
Sorry, I don't have anything to test it with
the website changed domain and is no longer using vimeo.

@AnessZurba I see, then I close the issue. Feel free to open new one if you will get any problem with the extension.

Here's an example of videos that are private, but whitelisted and viewable on some urls but that I cannot use the extension for:
https://vimeo.com/channels/618776/page:3
I am trying to grab the top video, LE BONHEUR....

i have same problem.... it is a vimeo video but it is hosted on cdn from vimeo i think.

@sophiemulders, for now, this project is not related to the extension Simple Downloader for Vimeo™ on Chrome Web Store.
That is why I could suggest you contact the current publisher via Chrome Web Store.


Check that client state is zeroed out for IBC client upgrade proposals

Summary
proposal.ValidateBasic() should ensure the client submitted is zeroed out. Not a security concern but prevents the proposal from containing information governance is not actually voting on

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

Hey!
I wanted to ask, in what cases is the client state not needed? And also want to confirm that we’re talking about the client state associated with UpgradeProposal, right?

Hey! I wanted to ask, in what cases is the client state not needed? And also want to confirm that we’re talking about the client state associated with UpgradeProposal, right?

Yes we are talking about the client state in the upgrade proposal. The client is always needed. "Zeroing" out the client state just means removing all relayer set fields from the client state (setting them to nil/zero)

No, we don't want to add another function to the exported.ClientState. We can simply check that reflect.DeepEqual(up.UpgradedClientState, up.UpgradedClientState.ZeroCustomFields()) ie that the custom fields have already been zeroed out on the provided upgraded client state

I think we need to first unpack, right? So then we just need to do something like this?
clientState, err := UnpackClientState(up.UpgradedClientState)
if err != nil {
        return sdkerrors.Wrap(err, "failed to unpack upgraded client state")
}

if !reflect.DeepEqual(clientState, clientState.ZeroCustomFields()) {
	return sdkerrors.Wrap(err, "upgraded client state is not zeroed out")
}

I think we need to first unpack, right?

Yup, but the unpacking is already being performed in proposal.ValidateBasic()


Display version info on startup?

Been digging through the wiki as well as general googling, and I haven't found a definitive way to do this, so I figured I'd ask here.
Is there a way to display the equivalent of the --version flag output, while running normally (instead of just displaying and exiting)?
I could, of course, pull the info from the assembly and do it manually, but I figured I would try and avoid reinventing the wheel, if at all possible.

Is there a way to display the equivalent of the --version flag output , while running normally (instead of just displaying and exiting)?

yes, you can get it from the API.
An update to wiki is done:

How to Display version information on Application startup?
How to Display Copyright information on Application startup?

You can add this wrapper class to your application:
class ApplicationInfo
{
   public static string Version   =>HeadingInfo.Default;
   public static string Copyright =>CopyrightInfo.Default;
   public static void ShowIntro()
   {
      Console.WriteLine(Version);
      Console.WriteLine(Copyright);
   }
}

Fantastic.  That was exactly what I was looking for.  Thank you very much!
One of my coworkers was recommending that I switch to using FluentCommandLineParser or some such, but this was so easy to learn and use (only started playing with it yesterday), that I think I will stay right here, thank you very much.


fix(ion-button): ion-button on a tag should be excluded

Short description of what this resolves:
The fore color of the button is being overwritten when it's applied on an a tag because of the 2 directives (text and button) that are setting the "color".
Changes proposed in this pull request:

Exclude ion-button on a selector

Ionic Version: 2.x
Fixes: #8249

@alan-agius4 good catch! Thanks a lot for the PR!


feature idea: copy excel sheet to clipboard and convert clipboard to a pscustomobject

hi - just a POC for an additional feature - maybe something which was already considered or could be unworkable in practice.  i use this to grab a chunk of data from excel and then pass it back to powershell for processing.
NB: newbie tick escape issue in github on the lines for splitting by new line and tab
steps:
copy a set of rows/columns in excel
pass the function to a variable -- e.g. $a = Get-ClipBoard2PS
function Get-ClipBoard2PS {     Add-Type -AssemblyName PresentationCore     $output = New-Object System.Collections.ArrayList($null)  #@() # An Array for the retuned objects to go into      $psoutput = New-Object System.Collections.ArrayList($null)  #@() # An Array for the retuned objects to go into      [Windows.Clipboard]::GetText().Split("``n") | foreach {         $row = @()         $row = $PSItem -split "``t"             $output.add($row)>$null     }     if ($output.count -gt 1) {         $last = $output.count-1         $output.removeat($last)     }         $properties = $output[0]     $zbased = $properties.length     $output.removeat(0)     $output | foreach {         $rc1 = New-Object PSCustomObject # if you don't recreate it each time, it's just a link so you get all the same data          For ($i=0; $i -lt $zbased; $i++) {             $value = [string]$PSItem[$i]              $property = [string]$($properties[$i]).trim()             $rc1 | Add-Member -type NoteProperty -name $property -value $value -Force         }         $psoutput.Add($rc1) > $null     }     return $psoutput }

Like there idea. I wrote a json to PS class code gen a while back.
Would you want to do a PR, and tests etc?

After Further Review
I think I misread this. Import-Excel reads the sheet into an array of objects that can then be processed by PowerShell.
Let me know if this is what you wanted to do. Doesn't need to go to the clipboard.

sorry for the delay - for some reason i didn't see the notifications and i admittedly should have checked back earlier.
my argument for clipboard to PS is probably an idiosyncratic one -- i can work with data more quickly in excel (filter, sort, modify) and then copy a matrix/column for further processing in PS.
i would of course be willing to do any work/tasks if you would like to pursue -- research/testing/etc.  thanks for responding and sorry again for the delay.


Issue when tagging

Something happens during tagging that adds the tags but doesn't delete the file with .tag in it so I end up with two files.
on restart it will grab files from this repo. I could reinstall requests, this would be a temp fix.
 File "/usr/local/sma/venv/lib/python3.11/site-packages/requests/models.py", line 971, in json
2024-03-17 21:49:20.3|Debug|postSonarr.sh|    return complexjson.loads(self.text, **kwargs)
2024-03-17 21:49:20.3|Debug|postSonarr.sh|           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-17 21:49:20.3|Debug|postSonarr.sh|  File "/usr/lib/python3.11/json/__init__.py", line 346, in loads
2024-03-17 21:49:20.3|Debug|postSonarr.sh|    return _default_decoder.decode(s)
2024-03-17 21:49:20.3|Debug|postSonarr.sh|           ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-17 21:49:20.3|Debug|postSonarr.sh|  File "/usr/lib/python3.11/json/decoder.py", line 337, in decode
2024-03-17 21:49:20.3|Debug|postSonarr.sh|    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
2024-03-17 21:49:20.3|Debug|postSonarr.sh|               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-17 21:49:20.3|Debug|postSonarr.sh|  File "/usr/lib/python3.11/json/decoder.py", line 355, in raw_decode
2024-03-17 21:49:20.3|Debug|postSonarr.sh|    raise JSONDecodeError("Expecting value", s, err.value) from None
2024-03-17 21:49:20.3|Debug|postSonarr.sh|json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-03-17 21:49:20.3|Debug|postSonarr.sh|During handling of the above exception, another exception occurred:
2024-03-17 21:49:20.3|Debug|postSonarr.sh|Traceback (most recent call last):
2024-03-17 21:49:20.3|Debug|postSonarr.sh|  File "/usr/local/sma/postSonarr.py", line 260, in <module>
2024-03-17 21:49:20.3|Debug|postSonarr.sh|    inProcess = settings.Sonarr['in-progress-check'] and downloadedEpisodesScanInProgress(baseURL, headers, episodefile_sourcefolder, log)
2024-03-17 21:49:20.3|Debug|postSonarr.sh|                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-17 21:49:20.3|Debug|postSonarr.sh|  File "/usr/local/sma/postSonarr.py", line 76, in downloadedEpisodesScanInProgress
2024-03-17 21:49:20.3|Debug|postSonarr.sh|    commands = r.json()
2024-03-17 21:49:20.3|Debug|postSonarr.sh|               ^^^^^^^^
2024-03-17 21:49:20.3|Debug|postSonarr.sh|  File "/usr/local/sma/venv/lib/python3.11/site-packages/requests/models.py", line 975, in json
2024-03-17 21:49:20.3|Debug|postSonarr.sh|    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
2024-03-17 21:49:20.3|Debug|postSonarr.sh|requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-03-17 21:49:20.3|Debug|CustomScript|Executed external script: /usr/local/sma/config/postSonarr.sh - Status: 0

Pull the logs from sma.log so I can see what’s actually happening. Looks like you’re getting an api error

Nevermind I got enough, this is an API issue, the first attempt at connecting your sonarr api is failing
Check your API key and settings


Add architecture to build

This makes build / installation suitable for M1 Macs, which use arm64
instead of amd64

🤔 I didn't think to test it with that.  Probably needs some sort of mapping then.  Let me have a tweak tomorrow and I'll re-submit.

That said, updating to the latest version does seem to install fine on my machine and not complain about not having an arm64 build, so I think the point may now be moot?

Updating to the latest version of the provider from the terraform registry ? Support for M1 silicon was added not too long ago (#349 ).
The Makefile is only used for building locally and using a local build.
Now arch returns i386, still not amd64 ;)

Yes, updating to the latest version of the provider from the registry.  I started along this path as I was on a slightly older version and moved to a new mac.  It was complaining that there wasn't a TF module for M1 macs - updating fixed it :)

@Mezzle 👍
I think this PR has some value when building locally, if you want to go ahead and test the local build works with M1 macs it would be great, but it is not mandatory to get the provider to work when using the registry.
If you don't have time to work on it or just don't need to work with a local build you can close the PR, up to you.

Don't need to work with a local build anymore, and quite honestly, haven't worked with Go before! :) So I'll close this off :)


Support to set the timeout of the git extension

As described below:
https://github.com/go-git/go-git/blob/c4390a64249356c285c069c6cc833e81539a55d8/_examples/custom_http/main.go
We can add an option to set the timeout of cloning git repositories. You might need to update the following code lines:
https://github.com/LinuxSuRen/atest-ext-store-git/blob/f72097a3be070e36230247e6fd4aaacbae878b80/pkg/server.go#L271

I want to try this issue, "add an option to set the timeout" mean the user can choose to add or not to add?

For the backend, it can take the timeout option from context. See also https://github.com/LinuxSuRen/atest-ext-store-git/blob/f72097a3be070e36230247e6fd4aaacbae878b80/pkg/server.go#L285
For the frontend, users can add the extra config item:


is there a way to pass command line params to nvim binary?

I see in #9 you can pass a file, but what about all params nvim accepts?

yes, just add the parameters after atom-shell .

welll, if I run this
atom-shell\atom.exe . -u NONE -U NONE
I get this, and exits inmediately:
[6520:0225/175427:INFO:renderer_main.cc(211)] Renderer process started
[5744:0225/175427:INFO:CONSOLE(22)] "child process spawned: 8128", source: neovim.as\src\nvim\nvim.js (22)
[5744:0225/175427:INFO:CONSOLE(25)] "child process closed", source: neovim.as\src\nvim\nvim.js (25)
[6520:0225/175427:ERROR:webgraphicscontext3d_command_buffer_impl.cc(243)] Failed to initialize GLES2CmdHelper.

@jmlucjav I can confirm this, I've opened #20.


Using /smart-sizing with dual monitor setup minimizes the xfreerdp screen to fit a single display instead of both

Initially found here, https://github.com/FreeRDP/FreeRDP/issues/5047#issuecomment-441166522 and reported separately per developer's recommendation.

The issue
/smart-sizing works as expected on single monitor setups
Using smart-sizing with dual monitor setups however minimizes the RDP screen to fit a single display instead of both displays when smart-sizing is not used.

@stilyan Can not reproduce, but maybe we're talking about different things:

I can start in dual monitor fullscreen, ok that is expected
I can leave fullscreen, then I get a maximized window (gnome defaults to single monitor maximization)
Then I can resize the window like any other
When I reenter fullscreen again both monitors are used.

@stilyan Could you add some details? Will close the issue otherwise as not reproducible.

Surely, tomorrow. I'm not close to the setup at this point. Thanks.

@akallabeth
I start dual monitor setup like so:
echo Y | /opt/freerdp/bin/xfreerdp \ -window-drag \ -menu-anims \ -themes \ +fonts \ /bpp:32 \ /f \ /smart-sizing \ -decorations \ -compression \ /audio-mode:0 \ /mic:format:1 \ /sound:latency:50 \ /multimon \ -floatbar \ /v:$1 \ /u:$2 \ /p:$3
Going through your points one by one:

I can start in dual monitor fullscreen, ok that is expected
I can do it too. It's fine.
 I don't want single monitor maximization because content in windows becomes unreadable pretty much. I want maximization on both screens.
Then I can resize the window like any other
I can't do this unfortunately. It's like my window doesn't have a header so once I drag it somewhere - that's it. I can't do it again. When I try - I'm messing with content inside the window itself, not moving or resizing it.
When I reenter fullscreen again both monitors are used.
Same for me, no problem there.

Ok, so the you want maximization part can't be handled by freerdp, you need some external tool/script for that.
As for you no longer can drag the window around, that is indeed strange. I've tried this too and it works (but only have debian and fedora to test with dual screen)

So, the initial issue is resolved as not how the option works, remains the dragging thing. Can not reproduce, could you give details?


Ignoring words list

Is there a way that we can create a "skip list of words" when separateWordSearch option is on?
That skip list will be ignored when there is a full match is available, just don't mark the word when marking as a separate word.
Thanks

Example
skiplist = {"to", "from", "the", "it"};
matchString = "how to play football";
source = The topic is about how to play football. Well I don't know how to play it.
result = The topic is about how to play football. Well I don't know how to play it.

Hi @qayyumabro,
there's already a filter callback where you can ignore words. Did you read the docs?

Sorry man. Please close it.

Thanks