Build and create a simple object executes for a very long time

Example:
We have two classes:
public class Class2
{
    public Guid Id { get; set; }
    public Guid ExternalId { get; set; }
    public DateTime ValidFrom { get; set; }
    public DateTime ValidTo { get; set; }
    public string MeteringPointIdentification { get; set; }
    public string InstallationNo { get; set; }
}

public class Class1
{
    public DateTime ValidFrom { get; set; }
    public string Field1 { get; set; }
    public string Field2 { get; set; }
    public string Field3 { get; set; }
    public string Field4 { get; set; }
    public string Field5 { get; set; }
    public string Field6 { get; set; }
    public string Field7 { get; set; }
    public string Field8 { get; set; }
    public string Field9 { get; set; }
    public string Field10 { get; set; }
    public string Field11 { get; set; }
    public string Field12 { get; set; }
    public string Field13 { get; set; }
    public string Field14 { get; set; }
    public string Field15 { get; set; }
    public string Field16 { get; set; }
}

We customize Class1:
var fixture = new Fixture();
fixture.Customize<Class1>(
    x => x
        .With(mpg => mpg.ValidFrom, DateTime.MinValue)
        .With(mpg => mpg.Field1, string.Empty)
        .With(mpg => mpg.Field2, string.Empty)
        .With(mpg => mpg.Field3, string.Empty)
        .With(mpg => mpg.Field4, string.Empty)
        .With(mpg => mpg.Field5, string.Empty)
        .With(mpg => mpg.Field6, string.Empty)
        .With(mpg => mpg.Field7, string.Empty)
        .With(mpg => mpg.Field8, string.Empty)
        .With(mpg => mpg.Field9, string.Empty)
        .With(mpg => mpg.Field10, string.Empty)
        .With(mpg => mpg.Field11, string.Empty)
        .With(mpg => mpg.Field12, string.Empty)
        .With(mpg => mpg.Field13, string.Empty)
        .With(mpg => mpg.Field14, string.Empty)
        .With(mpg => mpg.Field15, string.Empty)
        .With(mpg => mpg.Field16, string.Empty)
    );

We build/create Class2:
var class2 = fixture
    .Build<Class2>()
    .With(cmp => cmp.ExternalId, Guid.Empty)
    .With(cmp => cmp.InstallationNo, "ABC")
    .With(cmp => cmp.MeteringPointIdentification, null)
    .With(cmp => cmp.ValidFrom, DateTime.MinValue)
    .With(cmp => cmp.ValidTo, DateTime.MaxValue)
    .Create();

The build/create will take more than 2 minutes execute. If we remove the previos Customize of Class1, the build/create will execute in 140 ms.
If we add an extra field to Class1 and the Cusomize of Class1, the build/create will execute in double time (> 4 minutes).

I can reproduce the issue, but I don't understand why it happens.
As a workaround, could you use OmitAutoProperties instead?
fixture.Customize<Class1>(c => c.OmitAutoProperties());

That's not entirely equivalent to the above customization, because it isn't going to set the string properties to string.Empty - instead, it's not going to set them at all.
It does, however, execute in sub-second time.

Does that workaround resolve your issue?

I am having this same issue. I am creating a unit test that populates a deep object graph composed completely of auto properties and then maps that deep object graph to another similar structure. Omitting auto property generation isn't really an option for me since the very thing I'm testing depends on it.
I will take a look this weekend and see if I can figure out why it is happening, but if you haven't been able to understand why yet then I don't know how much help I can be :(

@srgoapp, @nelsonwellswku If the issue still happens with the aforementioned scenario, could you please profile code execution using the dotTrace profiler in tracing mode? Take 2 samples: without Customize() invocation that causes issues and with it (so we could compare graphs).
Analysis of the profiling snapshots should simplify the investigation much.

@srgoapp, @nelsonwellswku Could you please find some time to capture the snapshots if possible? 😳

This has been fixed in v3.50.5. Now it takes about 130 ms on my machine (previously about 3 mins).


EditorTitle React Component

The EditorTitle React component:

[ ]  Child of EditorTitle React component
[ ]  Props and render function
[ ] Unit tests

Blocked by #133
Blocked by #125

@SaravShah @jermnelson  is this still a thing?


Dowloading file from svtplay.se sometimes results in the wrong file being downloaded

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2022.11.11 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
Sweden
Provide a description that is worded well enough to be understood
Trying to download a video with URLs of format https://www.svtplay.se/video/${id}/${name} sometimes results in the wrong file being downloaded.
Examples of breaking URLs:

https://www.svtplay.se/video/K5wLrGb/deadline
https://www.svtplay.se/video/j4zJ9Nn/bilranaren

For videos that don't require this verification the downloads seem to work fine.
Exampels of working URLs:

https://www.svtplay.se/video/jLdDpwA/den-basta-sommaren
https://www.svtplay.se/video/8YyBQXp/handerna

I believe the extractor for svtplay.se will need to be updated, but I don't have enough insight into the inner workings of this project to provide a solution.
In the section below, attempting to download https://www.svtplay.se/video/K5wLrGb/deadline results in the file https://www.svtplay.se/video/KBM7ZXx/mid90s from being downloaded.
Edit: Edited this section to remove parts that I no longer believe to be relevant to this problem.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://www.svtplay.se/video/K5wLrGb/deadline']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.11.11 [8b64402] (linux_exe)
[debug] Python 3.10.6 (CPython x86_64 64bit) - Linux-6.0.9-arch1-1-x86_64-with-glibc2.36 (OpenSSL 3.0.7 1 Nov 2022, glibc 2.36)
[debug] exe versions: ffmpeg N-62475-g130d19bf20-static (setts), ffprobe N-62475-g130d19bf20-static, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.09.24, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1723 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.11.11, Current version: 2022.11.11
yt-dlp is up to date (2022.11.11)
[debug] Using fake IP <IP_ADDRESS> (SE) as X-Forwarded-For
[debug] [SVTPlay] Extracting URL: https://www.svtplay.se/video/K5wLrGb/deadline
[SVTPlay] K5wLrGb: Downloading webpage
[SVTPlay] KM3WEXY: Downloading JSON metadata
[SVTPlay] KM3WEXY: Downloading MPD manifest
[SVTPlay] KM3WEXY: Downloading MPD manifest
[SVTPlay] KM3WEXY: Downloading MPD manifest
[SVTPlay] KM3WEXY: Downloading MPD manifest
[SVTPlay] KM3WEXY: Downloading m3u8 information
[SVTPlay] KM3WEXY: Downloading MPD manifest
[SVTPlay] KM3WEXY: Downloading m3u8 information
[SVTPlay] KM3WEXY: Downloading m3u8 information
[SVTPlay] KM3WEXY: Downloading MPD manifest
[SVTPlay] KM3WEXY: Downloading MPD manifest
[SVTPlay] KM3WEXY: Downloading m3u8 information
[SVTPlay] KM3WEXY: Downloading m3u8 information
[SVTPlay] KM3WEXY: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] KM3WEXY: Downloading 1 format(s): dash-hbbtv-hevc-0+dash-full-15
[debug] Invoking dashsegments downloader on "https://svt-vod-9g.akamaized.net/d0/se/20221104/68d3e83a-6bf3-4c68-baa1-01e2516f46ce/dash-hbbtv-hevc.mpd"
[dashsegments] Total fragments: 1281
[download] Destination: Mid90s [KM3WEXY].fdash-hbbtv-hevc-0.mp4
[download] 100% of    1.77GiB in 00:01:51 at 16.28MiB/s
[debug] Invoking dashsegments downloader on "https://svt-vod-9g.akamaized.net/d0/se/20221104/68d3e83a-6bf3-4c68-baa1-01e2516f46ce/dash-full.mpd"
[dashsegments] Total fragments: 1281
[download] Destination: Mid90s [KM3WEXY].fdash-full-15.m4a
[download] 100% of  113.54MiB in 00:00:58 at 1.95MiB/s
[Merger] Merging formats into "Mid90s [KM3WEXY].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Mid90s [KM3WEXY].fdash-hbbtv-hevc-0.mp4' -i 'file:Mid90s [KM3WEXY].fdash-full-15.m4a' -c copy -map 0:v:0 -map 1:a:0 -movflags +faststart 'file:Mid90s [KM3WEXY].temp.mp4'
Deleting original file Mid90s [KM3WEXY].fdash-full-15.m4a (pass -k to keep)
Deleting original file Mid90s [KM3WEXY].fdash-hbbtv-hevc-0.mp4 (pass -k to keep)

https://www.svtplay.se/video/K5wLrGb/deadline
->
ERROR: [SVTPlay] K5wLrGb: This video is only available in Sweden
but with metadata e3ppQZE instead of KM3WEXY.

The videos are only available in Sweden, but should be accessible using a Swedish VPN server. AFAIK there's no VPN DRM.
A workaround for now is to click on the play button (labeled "Spela"), which redirects to a URL with format https://www.svtplay.se/video/${number_id}/deadline?id=${id}. For example, https://www.svtplay.se/video/K5wLrGb/deadline redirects to https://www.svtplay.se/video/17540346/deadline?id=8YwEpmA. Using this URL downloads the correct video.
[debug] Command-line config: ['-vU', 'https://www.svtplay.se/video/17540346/deadline?id=8YwEpmA']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.11.11 [8b64402] (linux_exe)
[debug] Python 3.10.6 (CPython x86_64 64bit) - Linux-6.0.9-arch1-1-x86_64-with-glibc2.36 (OpenSSL 3.0.7 1 Nov 2022, glibc 2.36)
[debug] exe versions: ffmpeg N-62475-g130d19bf20-static (setts), ffprobe N-62475-g130d19bf20-static, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.09.24, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1723 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.11.11, Current version: 2022.11.11
yt-dlp is up to date (2022.11.11)
[debug] Using fake IP <IP_ADDRESS> (SE) as X-Forwarded-For
[debug] [SVTPlay] Extracting URL: https://www.svtplay.se/video/17540346/deadline?id=8YwEpmA
[SVTPlay] 8YwEpmA: Downloading JSON metadata
[SVTPlay] 8YwEpmA: Downloading m3u8 information
[SVTPlay] 8YwEpmA: Downloading m3u8 information
[SVTPlay] 8YwEpmA: Downloading m3u8 information
[SVTPlay] 8YwEpmA: Downloading MPD manifest
[SVTPlay] 8YwEpmA: Downloading MPD manifest
[SVTPlay] 8YwEpmA: Downloading m3u8 information
[SVTPlay] 8YwEpmA: Downloading MPD manifest
[SVTPlay] 8YwEpmA: Downloading m3u8 information
[SVTPlay] 8YwEpmA: Downloading MPD manifest
[SVTPlay] 8YwEpmA: Downloading MPD manifest
[SVTPlay] 8YwEpmA: Downloading m3u8 information
[SVTPlay] 8YwEpmA: Downloading MPD manifest
[SVTPlay] 8YwEpmA: Downloading MPD manifest
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 8YwEpmA: Downloading 1 format(s): dash-hbbtv-hevc-0+dashhbbtv-5
[download] Deadline [8YwEpmA].mp4 has already been downloaded

When the "wrong" file is downloaded, is it a completely different video, or the same basic show with (eg) audio description as in #5164?

I have seen this issue too.

When the "wrong" file is downloaded, is it a completely different video, or the same basic show with (eg) audio description as in #5164?

It downloads a completely different video and is not related to #5164. For example, https://www.svtplay.se/video/jz2rYz7/anders-hansen-moter/james-fallon?info=visa downloads https://www.svtplay.se/video/jNnWaXy/anders-hansen-moter/stuart-russell?info=visa (in this case two different episodes of the same series).

The extractor tries to match random IDs in the __NEXT_DATA__ without analysing it.
This patch against 2022.11.11 works for the examples above:
--- old/yt_dlp/extractor/svt.py
+++ new/yt_dlp/extractor/svt.py
@@ -250,12 +250,10 @@
         if not svt_id:
             svt_id = self._search_regex(
                 (r'<video[^>]+data-video-id=["\']([\da-zA-Z-]+)',
-                 r'<[^>]+\bdata-rt=["\']top-area-play-button["\'][^>]+\bhref=["\'][^"\']*video/%s/[^"\']*\b(?:modalId|id)=([\da-zA-Z-]+)' % re.escape(video_id),
-                 r'["\']videoSvtId["\']\s*:\s*["\']([\da-zA-Z-]+)',
-                 r'["\']videoSvtId\\?["\']\s*:\s*\\?["\']([\da-zA-Z-]+)',
+                 r'<[^>]+\bdata-rt=["\']top-area-play-button["\'][^>]+\bhref=["\'][^"\']*video/[\da-zA-Z-]+/[^"\']*\b(?:modalId|id)=([\da-zA-Z-]+)',
                  r'"content"\s*:\s*{.*?"id"\s*:\s*"([\da-zA-Z-]+)"',
-                 r'["\']svtId["\']\s*:\s*["\']([\da-zA-Z-]+)',
-                 r'["\']svtId\\?["\']\s*:\s*\\?["\']([\da-zA-Z-]+)'),
+                 # removed patterns for videoSvtId, svtId that would randomly match __NEXT_DATA__
+                ),
                 webpage, 'video id')

         info_dict = self._extract_by_video_id(svt_id, webpage)

Then (working from the UK):
$ python3.9 -m yt_dlp -v --get-title 'https://www.svtplay.se/video/jz2rYz7/anders-hansen-moter/james-fallon?info=visa'
[debug] Command-line config: ['-v', '--get-title', 'https://www.svtplay.se/video/jz2rYz7/anders-hansen-moter/james-fallon?info=visa']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.11.11 [8b644025b] (source)
[debug] Lazy loading extractors is disabled
[debug] Plugins: ['SamplePluginIE', 'SamplePluginPP']
[debug] Git HEAD: c73355510
[debug] Python 3.9.16 (CPython i686 32bit) - Linux-4.4.0-210-generic-i686-with-glibc2.23 (OpenSSL 1.1.1s  1 Nov 2022, glibc 2.23)
[debug] exe versions: ffmpeg 4.3, ffprobe 4.3
[debug] Optional libraries: Cryptodome-3.11.0, certifi-2019.11.28, secretstorage-3.2.0, sqlite3-2.6.0
[debug] Proxy map: {}
[debug] Loaded 1735 extractors
[debug] Using fake IP <IP_ADDRESS> (SE) as X-Forwarded-For
[SVTPlay] Extracting URL: https://www.svtplay.se/video/jz2rYz7/anders-hansen-moter/james-fallon?info=visa
[SVTPlay] jz2rYz7: Downloading webpage
[SVTPlay] jvXAGVb: Downloading JSON metadata
[SVTPlay] jvXAGVb: Downloading m3u8 information
[SVTPlay] jvXAGVb: Downloading MPD manifest
[SVTPlay] jvXAGVb: Downloading MPD manifest
[SVTPlay] jvXAGVb: Downloading MPD manifest
[SVTPlay] jvXAGVb: Downloading MPD manifest
[SVTPlay] jvXAGVb: Downloading m3u8 information
[SVTPlay] jvXAGVb: Downloading m3u8 information
[SVTPlay] jvXAGVb: Downloading m3u8 information
[SVTPlay] jvXAGVb: Downloading MPD manifest
[SVTPlay] jvXAGVb: Downloading MPD manifest
[SVTPlay] jvXAGVb: Downloading m3u8 information
[SVTPlay] jvXAGVb: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] jvXAGVb: Downloading 1 format(s): dash-hbbtv-hevc-0+dash-hbbtv-hevc-2
James Fallon
$

Hey, i ran into this also for https://www.svtplay.se/video/jMdpzp2/leave-no-trace and more or less ended up with @dirkf conclusion and fix. Can i help out with something to get it fixed?

Can i help out with something to get it fixed?

I use the patch from @dirkf's comment, and it fixes your link as well. So a fix is basically available. Perhaps a Pull Request would put it up for review?
I you cannot patch your own copy of yt-dlp, it might be possible to fix it with a plugin (which you could just place into some folder) - but I have no experience with that yet.

@barsnick i would mostly be worried about breaking something else by removing the regexps

The whole point of the change is that the deleted REs were breaking the extraction, by finding the wrong video. Making the change won't affect any other sites. So you shouldn't worry on that score.
You can run the extractor test before (it fails) and after making a change, as well as keeping a backup, etc.
If you should find a page at SVT that appeared to work before and doesn't after the change, obviously that would be something to report.

Ok! i know more or less nothing about how that code works, my worry was that those REs are there to handle some special cases etc as it look looks like the extract method is used for many variants of svtplay web pages.

Sometimes it's simpler to add a new pattern for the latest page structure and not worry whether the previously handled structures are still being sent. Over time you get code like that above with a whole swathe of REs that may no longer be relevant. When they also break the extraction it's time to start again ...

Yeap is very much a moving target :( had some time to poke around a bit and run the tests. Seems like half of them are broken, either the URL is not valid anymore or the test asserts on a difference. The patch above seems to work for some URLs but does not work with the (valid) URL https://www.svtplay.se/video/30479064 that is used by test/test_download.py TestDownload.test_SVTPlay

Yeap is very much a moving target :(

To be honest, a guess-timate of 50 % of supported sites are moving targets. ;) That's just the way it is.

Seems like half of them are broken, either the URL is not valid anymore or the test asserts on a difference.

This phenomenon affects many many extractors!

The patch above seems to work for some URLs but does not work with the (valid) URL https://www.svtplay.se/video/30479064 that is used by test/test_download.py TestDownload.test_SVTPlay

Do not forget to validate in a browser. That particular video says:

Avsnittet är inte tillgängligt längre. Senast tillgänglig tor 20 jul

(For those of you who don't comprehend: This episode is no longer available. It was last accessible July 20.)
In other words: It currently cannot work with yt-dlp.
Feel free to update the extractor with new tests (as a PR), but I'm not sure such PRs are approved.

The patch above seems to work for some URLs but does not work with the (valid) URL https://www.svtplay.se/video/30479064 that is used by test/test_download.py TestDownload.test_SVTPlay

Do not forget to validate in a browser. That particular video says:

Avsnittet är inte tillgängligt längre. Senast tillgänglig tor 20 jul

Good point, missed that. I updated to a more stable URL, i hope.

(For those of you who don't comprehend: This episode is no longer available. It was last accessible July 20.) In other words: It currently cannot work with yt-dlp.
Feel free to update the extractor with new tests (as a PR), but I'm not sure such PRs are approved.

Made a PR here https://github.com/yt-dlp/yt-dlp/pull/7789 let's see how it goes


Update ProvidePlugin usage

Summary
Updated the content of the following PR
https://github.com/webpack/webpack/pull/3597

Any update on this PR?

Updated

Thank you for your review!


Place environmentally friendly ads between songs using TTS

To raise awareness about climate change, we should deliver climate-related facts and gotchas to the user between songs in the form of ads.
We first need to furnish a list of climate change related messages we can both display as 'green tips' on the interface and play as ads between songs.
There are a few sources we could look at:

All kind of stats: https://www.worldometers.info/

We could also pull a random fact directly from the website or its API rather than just use a pre-established list of facts we chose.
We can use https://pypi.org/project/gTTS/ to produce audio versions.

We could also show plots in addition to text messages.

This is ambitious, but the 'gotchas' could be interactive gotcha questions:

how many trees do you think there are on Earth ? [3 million] [3 billion] [3 trillion]
in 2050, what will be the world population ? [8 billion] [10 billion] [15 billion]

All to keep the user inside the app.

Some more sources for audio ads:

http://www.cowspiracy.com/facts
https://www.globalgiving.org/learn/climate-change-facts
https://www.techtimes.com/articles/55460/20150527/21-amazing-facts-global-warming-climate-change.htm
https://www.nwf.org/eco-schools-usa/become-an-eco-school/pathways/climate-change/facts.aspx
https://www.dosomething.org/us/facts/11-facts-about-global-warming
https://solarimpulse.com/global-warming-solutions
https://www.ecotricity.co.uk/news/news-archive/2017/six-scary-facts-about-climate-change
http://www.washingtonnature.org/fieldnotes/2017-climate-change-facts-about-climate-change-to-share-social-media
https://www.natgeokids.com/au/discover/geography/general-geography/what-is-climate-change/
https://www.theworldcounts.com/stories/climate-change-facts-for-kids
http://www.climatecentre.org/downloads/files/conferences/COP-16/Fact and Figures.pdf
http://www.msnbc.com/msnbc/7-scary-facts-about-climate-change
https://www.weforum.org/agenda/2017/04/climate-change-things-to-know/

Also, we could add prefixes such as "Did you know that ..." to clarify the contents of the ad.
Also, we may want the ad to be numbered "FACT 33: ..." and sourced ".../ Source: cowspiracy.com".
For infographics: (although that's a very ambitious topic)

https://visme.co/blog/climate-change-facts/


how long it will take to convert the datasets into TFRecords

Dear author
I was trying to train the model, however, it has to convert the datasets into TFRecords first. Out of time estimation, I was wondering how long it will take to convert each dataset into TFRecords, for example, for Penn Action Dataset and Human3.6M. And how long it will take to train the model from them?
Thanks in advance

Hi,
To convert Penn Action it does not take that long, I think H36M takes a bit more bc we do this pre-augmentation thing.. maybe a day or so?
Best,
Angjoo


How to use Request objects

In the documentations it says Request Objects provides you access to all the interactions expected in a JSON API
but i'm not sure how to  implement it. I will be great if you can provide some guide for using
&page[limit]
&filter[resource]=field1

I'm working on a full example and a trait for solving this instead of delegating in the library user do it. I'm halfway done with it.
I'll keep you posted!

@tomc3 here's a sample:

    /**
     * @param Request $request
     *
     * @return \NilPortugues\Api\JsonApi\Http\Message\Request
     */
    protected function buildJsonApiRequest(Request $request)
    {
        $psr7Factory = new \Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory();
        $psrRequest = $psr7Factory->createRequest($request);
        $jsonApiRequest = new \NilPortugues\Api\JsonApi\Http\Message\Request($psrRequest);

        return $jsonApiRequest;
    }

    /**
     * @param Request $request
     *
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function listAction(Request $request)
    {
        $jsonApiRequest = $this->buildJsonApiRequest($request);

        $page = $jsonApiRequest->getPageNumber(1); //1 is default if none is found in query.
        $limit = $jsonApiRequest->getPageLimit(10); //10 is default if none is found in query.

        $employees = Employees::query()->paginate($limit, ['*'], 'page', $page);

        $serialized = $this->serializer->serialize($employee);
        return $this->response($serialized);
  }

Check 1.3.0

Many thanks :)


Error Code-11001 - Problem with transaction Manager and throwing up exception to the client

Hello,
we have some problems, which randomly occur in the context of an transactionManager, which is used by the JTAConfiguration Factory. You can find a detailed description here. I don't know if this is an osgi related or just a configuration issue on our side. So i would be really grateful, if you can look for it. I will also mention, that the service implementation, which is used in the delegate is injected from another bundle.
Cheers,
Andy

I close this issue because the discussion is going on in the forum thread and it's not related to OSGi


Fixed version.sh

Changes in this pull request
Issue fixed: versions.sh script on macOS 10.5.3+
Checklist

[x] All tests pass. Demo project builds and runs.
[ ] I added tests, an experiment, or detailed why my change isn't tested.
[ ] I added an entry to the CHANGELOG.md for any breaking changes, enhancements, or bug fixes.
[x] I have reviewed the contributing guide

Hi @futuretap! Thanks for your PR! (And I've also used InAppSettingsKit in a personal project before, so thank you for that as well!)
I'm going through the PRs now to see which ones should be merged for v5.0. I'm not sure when it happened, but versions.sh has already been updated to your proposed changes.
Thanks again for your contribution! If you see any other places where the build scripts need updating, we'll try and merge your PR a bit faster next time.


Add Tooltip to FA Icons in Simulator

Fixes https://github.com/CircuitVerse/CircuitVerse/pull/1072#issuecomment-596218306
Describe the changes you have made in this PR -
I have added Tooltip to the Font Awesome Icons Present in the Simulator (Also to the Edit Layout Icons).
Screenshots of the changes (If any) -

Coverage remained the same at 84.266% when pulling 257cf3053d882444e298cc937b763276a5c9e7da on Shivansh2407:patch-29 into b4e57bf790d89cdbc5685e24988eb25a9ee48157 on CircuitVerse:master.

@satu0king Done 👍 . Please review and merge .

Add the titles to embed.html.erb

Done @satu0king 👍

I guess it doesn't show up on mac.


EverDrive macOS support

As part of #23, we're now supporting a platform that works with macOS. The multiworld installer and app should offer a macOS version. Maybe also look into offering installation via Homebrew.

This is now in progress on the macos branch.

Now merged into main.

With https://github.com/midoshouse/midos.house/commit/dbc8ba8a95361e93ae9eef3f8c5b8416189ee1f3 live, this is now complete.


Unified account - Fix bug related to the Swap feature

Describe the task
Fix bug related to the Swap feature

[x] Add "To" field when swap DOT (Polkadot) <-> ETH/USDC (Ethereum)

[x] Remove "From" field when stand on Single account

[x] Only show swap quote when input all information

Actual: When change swap pair then reset account but still show Swap quote

Version test : https://drive.google.com/drive/folders/18__HpWFJDr4jvkBhCuWcXkHOdScveDVa?usp=drive_link

[ ] All account mode, don't show From field
Actual :

Expect : Show From field
Link design : https://www.figma.com/design/aEnkI859zkZaIpyzPidYwh/SubWallet-Apps?node-id=25860-104598&t=q7Lujv2CvTLacCtI-4

[ ] Don't show account name although account is in the wallet

Expect :

Version test: https://drive.google.com/file/d/11cZnQDJIpTgTXvULJD-YOiQkM9erpLcK/view?usp=sharing
Please check:

[ ] Do not show swap history

Version test : https://drive.google.com/file/d/1EYCD87_fFS1wJSv92ciRZs5F3d9cfc0E/view?usp=sharing
Validation passed in case :

Results are updated in checklist : https://www.notion.so/subwallet/BA-QC-Document-57acd6b41e544bc19be3bc50cd6be605?p=d2e7d0eb5e044e81aaa19afce4435c43&pm=s


Update og:image of dashboard for 2021

Types of changes
Thanks for sending a pull request! Please fill in the following content to let us know better about this change.
Please put an x in the box that applies

[x] Bugfix
[ ] New feature
[ ] Refactoring
[ ] Breaking change (any change that would cause existing functionality to not work as expected)
[ ] Documentation Update
[ ] Other (please describe)

Description
Describe what the change is
Update default og:image for 2021.
Steps to Test This Pull Request
Steps to reproduce the behavior:

Go to 'MY PYCON page'
Check og:image update for 2021.

Expected behavior
A clear and concise description of what you expected to happen.
Related Issue
If applicable, refernce to the issue related to this pull request.
More Information
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here. You may also want to refer
to how to wirte the perfect pull request

 Fix ALL the bugs found during the proposal system testing


Minor edits to avoid use of pubternal (public-yet-internal) namespaces

Purpose
Namespaces ending with .Internal are not actually intended to be used, in fact they've been removed from AspDotNet 3.1, so I've made a couple very small changes in the solution csharp-visualstudio\FunctionsTesting.sln to avoid them.  For an explanation from docs.microsoft.com, see ..."Pubternal" APIs removed
Does this introduce a breaking change?
[ ] Yes
[x ] No

Pull Request Type
What kind of change does this Pull Request introduce?
[ ] Bugfix
[ ] Feature
[x ] Code style update (formatting, local variables)
[x ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone https://github.com/rdalkire/azure-functions-tests
cd azure-functions-tests
git checkout rdalkire-nixInternalNamespaceRefs

Test the code

Run the tests that already exist within the FunctionsTesting solution

What to Check
Verify that the following are valid

The tests still pass

Other Information
n/a

Bump as this is compliant with upgrading package references as well. Looks good.


Long Press home button

The app seems to work correctly on my TV, but I lose access to a long press of home button. I need it to select HDMI input. Is there any way retain that functionality? Thanks. I am on <IP_ADDRESS>.

nvm. didn't fully read  the document. home + menu didn't work at first for me, but then I found that pressing menu first and holding for one second and then pressing home and holding both works for me.


Default to immutable methods and params when migrating types from .d.ts files

Codecov Report
Attention: Patch coverage is 94.73684% with 1 line in your changes missing coverage. Please review.

Project coverage is 84.07%. Comparing base (2b8b079) to head (806d305).

Files with missing lines
Patch %
Lines

src/Escalier.Interop/Migrate.fs
93.75%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #362   +/-   ##
=======================================
  Coverage   84.07%   84.07%
=======================================
  Files          22       22
  Lines       12480    12452   -28
  Branches     1765     1761    -4
=======================================
- Hits        10492    10469   -23
+ Misses       1988     1983    -5

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


chore: Add SECURITY.md and update deps

Description
Add SECURITY.md, mentioning the new security email and our insistence on go mod tidy
Fixes: #325
Also went ahead and updated dependencies since that probably hadn't been done in a while.
Checklist
Please make sure that your PR fulfills the following requirements:

[ ] Reviewed the guidelines for contributing to this repository
[ ] The commit message follows the Conventional Commits Guidelines.
[ ] Tests for the changes have been updated
[x] Docs have been added / updated
[ ] Optional. My organization is added to USERS.md.

Type of Change

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

Other information

Codecov Report

Merging #348 (be5b2d9) into main (b9bb145) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #348   +/-   ##
=======================================
  Coverage   76.68%   76.68%
=======================================
  Files          22       22
  Lines         948      948
=======================================
  Hits          727      727
  Misses        137      137
  Partials       84       84

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Add minecraft-hosts tracking domains

Fixes GH-1638.

Perfect.  Thank you Jamie @jamierocks for this contribution!  I'm happy to have your list included in the main hosts list, thus also in all the derived works of this project.  Cheers! 🎉
Merging.


Sounds like a lucky result comes from a wrong formula deduction

I read the paper carefully, the formula in paper is fundamentally wrong.

Under the formula (2) and (3), the probility output has a gaussian distribution. However, the probility can't be a gaussian distribution as  it distributed in [0,1] rather than (-infty, +infty).

Under the independent assumption(formula (4)) and gaussian distribution mentioned above, the formula (7) is correct. However, if we just look at the first line  in formula (7), if independent assumption is established, -log p(y1, y2|f(w,x)) = -log p(y1|f(w,x)) - log(y2|f(w,x));  which is just a sum of cross-entropy loss over different tasks. This is apparently contradicted with the result under  additional gaussian assumption.

Somehow,  the paper repalce the cross entrophy loss with mse which finally reach the result that higher loss task should have higher theta weights. If the paper report is correct, I think the benefit here comes from loss re-balance. Which means, re-balance the task loss will benefit multi-task performance?

"Under the formula (2) and (3), the probility output has a gaussian distribution."

no, the random variable y follows a Gaussian distribution under (2) only. It follows a categorical distribution under (3)

"However, the probility can't be a gaussian distribution as it distributed in [0,1] rather than (-infty, +infty)."

no, the outcomes a random variable can take are in (-infty, +infty) for a Gaussian, and "classes" (categories) for a categorical rv. These are different to the probability of the rv to take these values (density for the continuous case). Also note that the density can't be negative (it is a measure) and that it can be larger than 1 for continuous random variables.

"if we just look at the first line in formula (7), if independent assumption is established, -log p(y1, y2|f(w,x)) = -log p(y1|f(w,x)) - log(y2|f(w,x)); which is just a sum of cross-entropy loss over different tasks."

no, for Gaussian likelihoods the log Gaussian is a scaled MSE loss (and not cross-entropy).

"This is apparently contradicted with the result under additional gaussian assumption."

I don't understand this sentence

"Somehow, the paper repalce the cross entrophy loss with mse"

no, the log of a Gaussian density is the Euclidean distance. Have a look here
https://en.wikipedia.org/wiki/Gaussian_function
and here
John Denker and Yann LeCun. "Transforming neural-net output levels to probability distributions". In Advances in Neural Information Processing Systems 3. 1991

"which finally reach the result that higher loss task should have higher theta weights."

what's theta?

fabulous!


add  multi screen  manager tool : contexts

Types of Changes

[x] New addition to list

Proposed Changes
Describe each of your changes here to communicate to the maintainers why we should accept this pull request.

contexts : Radically simpler & faster window switcher. if you have multi screen, it can help you to focus on your work space.

PR Checklist

[x] I have read the CONTRIBUTING guide
[x] I have explained why this PR is important

i  am a coder & writer ,  and have  multi screens  ,contexts  help me focus my work . want  to share to another.

This is really useful, thank you very much @luoxugeng !


Help some folks out by showing how to keep pioarduino in a special folder instead of the default espressif32 folder

I figures out how to specify the version of espressif32 in my platoformio.ini keeps the "official" versions separate but it took me a bit too much time to figure out how to keep pioarduino in its own special folder.  I was mostly having problems because some projects I have (not mine) kept trying to use the pioarduino files which were residing in the espressif32 folder.
Would you mind dropping the following info somewhere on your front Readme and helping some people like me out?

The following specifies a specific folder to put the pioarduino files into instead of allowing it to conflict with any projects that may already be using the espressif32 folder:
platform = [name] = respository ; notes

platform = pioarduino51.03.05 = https://github.com/pioarduino/platform-espressif32.git#51.03.05 ; Arduino Core 3.0.5 / ESP-IDF v5.1.4+ (18 Sep 2024)

By the way, great work!  It's working great on an ESP32-S3!

In your platformio.ini file, you can also define the folder to store your packages, cache and platforms folder, like this:
[platformio]
core_dir = .pioarduino

This will then store this folder in your project folder.
Make sure to add it to your .gitignore or else Git needs to handle a few 10'000 files :)

That seems like a good solution if all else fails.
My solution isn't working anyway.  It downloaded correctly but can't build.

I guess my problem was I was trying to work on 2 ESP projects at the same time, one of which relies on the official repo and another which relies on pioarduino (recoding an ESP32 project for ESP32-S3).  I think the solution offered by @TD-er is probably best for temporary solutions and the best solution is still to work with only one platform at a time and let platformio handle how the folders are operated on.  I see now they are being renamed as I open different projects which means the platform folder MUST be named espressif32 when it is in use.

FWIW, in VS Code you can create separate Workspaces and enable/disable the PlatformIO and pioarduino extensions as needed.


Document short lived Mix tasks for Elixir

We currently have no documentation on how to create a short living mix task and monitor it. It would be useful to have this.

Fixed in https://github.com/appsignal/appsignal-docs/pull/259.


merge development to master

merging development to master for milestone 11

Current coverage is 52.07% (diff: 26.58%)

Merging #552 into master will decrease coverage by 4.23%

@@             master       #552   diff @@
==========================================
  Files             4          4
  Lines           396        457    +61
  Methods          43         45     +2
  Messages          0          0
  Branches         48         63    +15
==========================================
+ Hits            223        238    +15
- Misses          173        219    +46
  Partials          0          0

Powered by Codecov. Last update 919352a...707e2f8


Nginx Ingress Controller frequently giving HTTP 503

For unknown reasons to me, the Nginx Ingress Controller is frequently (that is something like every other day with 1-2 deployments a day of Kubernetes Service updates) returning HTTP error 503 for some of the Ingress rules (which point to running working Pods).
Note: Running also kube-lego.
Below are logs of Nginx Ingress Controller:
$ kubectl logs nginx-ingress
<IP_ADDRESS> - [<IP_ADDRESS>, <IP_ADDRESS>] - - [08/Sep/2016:11:17:26 +0000] "GET / HTTP/1.1" 503 615 "-" "agent here" 592 0.000 - - - -
<IP_ADDRESS> - [<IP_ADDRESS>] - - [08/Sep/2016:11:17:26 +0000] "GET / HTTP/2.0" 503 730 "-" "agent here" 18 0.001 <IP_ADDRESS>:8181 615 0.001 503
<IP_ADDRESS> - [<IP_ADDRESS>, <IP_ADDRESS>] - - [08/Sep/2016:11:17:26 +0000] "GET /favicon.ico HTTP/1.1" 503 615 "https://foo.example.com/" "agent here" 510 0.000 - - - -
<IP_ADDRESS> - [<IP_ADDRESS>] - - [08/Sep/2016:11:17:26 +0000] "GET /favicon.ico HTTP/2.0" 503 730 "https://foo.example.com/" "agent here" 24 0.001 <IP_ADDRESS>:8181 615 0.001 503

Looking at /etc/nginx/nginx.conf of that nginx-ingress:
$ kubectl exec nginx-ingress-controller grep -A 5 foo /etc/nginx/nginx.conf
upstream foo-frontend-80 {
    least_conn;
    server <IP_ADDRESS>:80 max_fails=0 fail_timeout=0;

}

And checking that service actual IP of the Pod (because it's bypassing the service visibly):
$ kubectl --namespace=foo describe po frontend | grep IP:
IP:             <IP_ADDRESS>

IP matches, so visibly the reload failed, and doing this fixes it:
$ curl -I https://foo.example.com/
HTTP/1.1 503 Service is no longer available

$ kubectl exec nginx-ingress-controller -- nginx -s reload

$ curl -I https://foo.example.com/
HTTP/1.1 200 OK

So it looks like there are cases where the reload didn't pick up changes for some reason, or didn't happen, or some concurrency.

I don't know where the glog.Info("change in configuration detected. Reloading...") goes as it might be useful to diagnose.

Ok found one requeuing foo/frontend, err error reloading nginx: exit status 1, nothing more. Didn't repeatably fail.

Another note, I'm running it on another cluster with less Ingress rules and didn't notice that issue there. So it'd quite likely related to how many updates happen.

How many ingress rules you are using?
Please increase the verbose level to 2 --v=2 in order to see what it
changes in the nginx.conf
On Sep 8, 2016 5:07 AM, "Werner Beroux"<EMAIL_ADDRESS>wrote:

Another note, I'm running it on another cluster with less Ingress rules
and didn't notice that issue there. So it'd quite likely related to how
many updates happen.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/contrib/issues/1718#issuecomment-245577155,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJ3I1ZSB4EcwAoL6Fgj9yOSj8BJ2gAuks5qn_qegaJpZM4J34T_
.

Do you experience the same issue with a backend different to gitlab?
On Sep 8, 2016 4:17 AM, "Werner Beroux"<EMAIL_ADDRESS>wrote:

For unknown reasons to me, the Nginx Ingress is frequently (that is
something like every other day with 1-2 deployments a day of Kubernetes
Service updates).
Restarting Nginx Ingress controller fixes the issue.
Running also kube-lego.

Reply to this email directly, view it on GitHub
https://github.com/kubernetes/contrib/issues/1718, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJ3I6VnEMx3oaGmoeEvm4gSA16LweYCks5qn-7lgaJpZM4J34T_
.

Yes all backends, randomly one of them.
9 Ingresses, 98 rules in total (that is hosts).

I'm noticing similar behavior. It usually occurs if I update/replace a Service. I'll get random 503's until I update something in an Ingress which seems to reload nginx and everything starts working again.
I'm happy to debug things further, but I'm not sure what info would be useful.

Two ideas of possible fixed supposing it's some concurrency issue:

Pass of nginx reload through a denounce function
Call nginx reload again something lile 3 sec after the last nginx reload (may be also through a denounce
Check that if it fails it really retries (probably good)
Perform some self monitoring and reload if it sees something wrong (probably really good)

@wernight thanks for the ideas you are proposing. Most of the points are already present:

rate limiting for reloads
reload only when necessary (diff of nginx.conf)
avoid multiple reloads
Please check here

I'm noticing similar behavior. It usually occurs if I update/replace a Service

@wernight @MDrollette
Your service is scaled to more than 1?
The service has a livenessProbe and/or readinessProbe?
What version of the controller are you using?

I've noticed this twice since updating to v0.8.3. Both times it was after updating a Service that only had 1 pod. Both services have a readinessProbe but no livenessProbe.

Both times it was after updating a Service that only had 1 pod. Both services have a readinessProbe but no livenessProbe.

ok, the default configuration in nginx is to rely in the probes. If you are not using a livenessProbe then you need to adjust the configuration. Please check https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/configuration.md#custom-nginx-upstream-checks

Both times it was after updating a Service that only had 1 pod

How are you deploying the update? Deployments?
(You need to start the new version of the pod before removing the old one to avoid 503 errors)

Thanks, I'll look into the health checks in more detail to see if that can prevent winding up in this broken state.
Yes, I'm using Deployments. Although in this case I didn't deploy any new pods, I just changed some properties on the Service.
And just to clarify, I would expect temporary 503's if I update resources in the wrong order. But my concern in this case is that if the Ingress, Service, and Pod resources are all correct (and no health checks are failing) then I would expect the nginx controller to reconcile itself eventually - following the declarative nature of Kubernetes. But it seems like it can wind up in a permanently broken state if resources are updated in the wrong order.

I just changed some properties on the Service.

Can you mention what was changed in the service?

then I would expect the nginx controller to reconcile itself eventually - following the declarative nature of Kubernetes.

It does but if for instance the initial test of readinessProbe requires 60 seconds the you kill the previous pod before that there's no way to avoid errors. The controller doesn't know the state of the pod, just represents the current state in the api server

Also using 0.8.3, also applying just few changes to Pods like updating the images (almost exclusively), also having liveness/readiness probes for almost all Pods including those giving 503 but those probes didn't pick up any issues (as Pods were running fine). Some Services are scaled to more than 1, but that doesn't seem to influence this bug as I had issues with those 1 and those with multiple Pods behind a service.
@aledbf I guess you're the rate limiting is only delaying the next reload to have never more than X/second and never actually skipping some. Then it looks like the main thing left to do is self-checking.

I guess you're the rate limiting is only delaying the next reload to have never more than X/second and never actually skipping some

Exactly

Then it looks like the main thing left to do is self-checking.

Do you mean to avoid this

Ok found one requeuing foo/frontend, err error reloading nginx: exit status 1, nothing more. Didn't repeatably fail.

Can you search the log to see the reason for the error 1?

I do mean that Nginx Ingress Controller checking if Nginx is working as intended sounds like a rather good thing. May during the /healthz request it could do that.
The logs are no more reporting an error so cannot check the context.

I do mean that Nginx Ingress Controller checking if Nginx is working as intended

Just in case nginx never stops working during a reload. Only if the configuration is valid nginx starts new workers and kill the old ones when the current connections are closed.
Do you have memory limits applies to the ingress pod?

I have some, I can check but it should be rather high for Nginx like 100 MB
Le jeu. 8 sept. 2016 à 23:01, Manuel Alejandro de Brito Fontes <
<EMAIL_ADDRESS>a écrit :

I do mean that Nginx Ingress Controller checking if Nginx is working as
intended
Just in case nginx never stops working during a reload. Only if the
configuration is valid nginx starts new workers and kill the old ones when
the current connections are closed.
Do you have memory limits applies to the ingress pod?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/contrib/issues/1718#issuecomment-245739614,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAI5A-hDeSCBBWmpXDAhJQ7IwxekPQS6ks5qoHe1gaJpZM4J34T_
.

Checked and yes it's using 100 MB almost at times. Looks like it's really using a lot more than single Nginx instances. Increased, may be it'll fix that. Good call!
Still it doesn't stay at nearly 100 MB most of the time, so I wonder why I've to manually reload Nginx when theoretically Nginx Ingress Controller could detect those issues and do that reload automatically. Why I'd have more self-checks is because the Ingress Controller is may be the most important piece on the network as it may captures all network packets.

@wernight the amount of memory required is the sum of:

~70MB in the master nginx process
~65MB * number of worker threads (default is equals to the number of cpus)
~50MB for the go binary (the ingress controller)

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   57996  49748      4 S   0.0  0.1 556:19.50 nginx-ingr+
   17 root      20   0  129552  68692   7012 S   0.0  0.1   0:51.39 nginx
31850 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:04.39 nginx
31851 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:03.65 nginx
31852 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:03.75 nginx
31853 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:03.29 nginx
31854 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:03.60 nginx
31855 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:02.75 nginx
31856 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:03.88 nginx
31857 nobody    20   0  391828  65512   3572 S   0.0  0.1   0:03.18 nginx
32114 root      20   0   18308   3380   2828 S   0.0  0.0   0:00.05 bash
32120 root      20   0   36652   3136   2696 R   0.0  0.0   0:00.01 top

@wernight the number of worker thread can be set using the directive worker-processes
(https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/configuration.md)

Why I'd have more self-checks is because the Ingress Controller is may be the most important piece on the network

Agree. That's why I'm asking all this question in order to be able to reproduce the behavior you see

I'm seeing the same issue with the ingress controllers occasionally 502/503ing. I usually 'fix' this by just deleting the ingress controller sending those errors. This happened on v0.8.1 as well as v0.8.3. I still have the ingress controller pods that are causing issues up (for both versions). Let me know what I can do to help debug this issue.
This is what I see when i run a ps, which shows a lot of zombie nginx processes.
root@nginx-ingress-lb-jtids:/# ps auxww

USER
PID
%CPU
%MEM
VSZ
RSS
TTY
STAT
START
TIME
COMMAND

root
1
0.1
0.2
49352
36772
?
Ssl
17:51
0:14
/nginx-ingress-controller --default-backend-service=kube-system/default-http-backend --nginx-configmap=kube-system/nginx-ingress-conf

nobody
5343
0.0
0.0
0
0
?
Z
19:08
0:00
[nginx] <defunct>

nobody
5344
0.0
0.0
0
0
?
Z
19:08
0:00
[nginx] <defunct>

nobody
5345
0.0
0.0
0
0
?
Z
19:08
0:00
[nginx] <defunct>

nobody
5346
0.0
0.0
0
0
?
Z
19:08
0:00
[nginx] <defunc\t>

nobody
5478
0.0
0.0
0
0
?
Z
19:09
0:00
[nginx] <defunct>

nobody
5479
0.0
0.0
0
0
?
Z
19:09
0:00
[nginx] <defunct>

nobody
5480
0.0
0.0
0
0
?
Z
19:09
0:00
[nginx] <defunct>

nobody
5481
0.0
0.0
0
0
?
Z
19:09
0:00
[nginx] <defunct>

nobody
5613
0.0
0.3
373200
57624
?
Sl
19:10
0:00
nginx: worker process

nobody
5614
0.0
0.3
373200
56296
?
Sl
19:10
0:01
nginx: worker process

nobody
5615
0.0
0.3
373200
57532
?
Sl
19:10
0:00
nginx: worker process

nobody
5616
0.0
0.0
0
0
?
Z
19:10
0:00
[nginx] <defunct>

nobody
5748
0.0
0.3
373200
57624
?
Sl
19:10
0:02
nginx: worker process

nobody
5749
0.0
0.3
373200
57624
?
Sl
19:10
0:03
nginx: worker process

root
5750
0.0
0.0
0
0
?
Z
19:10
0:00
[nginx] <defunct>

nobody
5751
0.0
0.0
0
0
?
Z
19:10
0:00
[nginx] <defunct>

root
6431
2.5
0.0
18248
3112
?
Ss
20:32
0:00
/bin/bash

root
6440
0.0
0.0
34428
2872
?
R+
20:32
0:00
ps auxww

With both 0.8.1 and 0.8.3 when 'apply'ing updates to a Deployment the nginx controller sometimes does not reconfigure for the new Pod IP addresses. When I check the nginx.conf it still has the old IP address for the Pods the Deployment deleted. The Service referred to in the Ingress does update and has the new Pod IPs. The controller never recovers and currently the quick fix is to delete the nginx controller Pods; on restart they get the correct IP address for the Pods. It happens for maybe 1 in 10 updates to a Deployment.
Currently I typically 'apply' an update to the Ingress, Service and Deployment, even though only the Deployment has actually changed. I am assuming 'apply'ing an identical config is a null operation for resources created with 'apply'? Or could this be causing nginx to fail to reconfigure?

We see this where the config is out of date but generally the ingress is throwing an error like:
[ingress-controller-xnx9m] | E1119 20:55:56.556156 1 command.go:87] failed to execute nginx -s reload: 2016/11/19 20:55:56 [notice] 18988#18988: signal process started
[ingress-controller-xnx9m] | 2016/11/19 20:55:56 [alert] 18988#18988: kill(18, 1) failed (3: No   such process)
[ingress-controller-xnx9m] | nginx: [alert] kill(18, 1) failed (3: No such process)

When we exec into the pod we notice that there is still a live nginx worker but the nginx master is down.
Of course because the controller and nginx are both running in the pod and the controller is on pid 1 and considers itself healthy the pod gets wedged in this bad state.
Perhaps the controller can check that /var/run/nginx.pid is actually pointing to a live master continuously?

We are facing the same issue as @SleepyBrett . When this happen, the PID stored in /run/nginx.pid is pointing to a PID that do not run anymore.

@jeremi I eventually made changes to the controller code that cause it to crash if the underlying nginx master crashes. It causes the ingress pod to restart, but it comes back in a healthy state.
It's a quick hack but you can find it here:
https://github.com/Nordstrom/kubernetes-contrib/tree/dieonreloaderror

thanks @SleepyBrett so logging to the Fatal level force the pod to be restarted ? Is it a kubernetes feature ?

logging to the Fatal level force the pod to be restarted ? Is it a kubernetes feature ?

No, Fatalf terminates the process after printing the log with exit code 255
https://godoc.org/github.com/golang/glog#Fatalf

I'm also having this issue when kubectl apply'ing to the service, deployment, and ingress. The logs are littered with failed to execute nginx -s reload signal process started.

I was running this with a resource constraint of 200MB of memory, removing this constraint I haven't seen this error re-occur.
This doesn't seem to be the result of an OOM kill, in that case the go ingress controller process receiving the signal would kill the entire container. It seems like the nginx process must be crashing as a result of the constrained memory, but without exceeding the resource limit. 😕

I see this with no resource constraint. Just ab -n 3000 -c 25 https://myurl.com  and then I load a new image into one of my deployments and I get constant 503s for several seconds. Also, even without the new image, I get fairly frequent "SSL Handshake Error"s. Neither of these issues happens with the nginxinc ingress controller.

We have same issue like this. We use nginx-ingress-controller:0.9.0-beta.8, Does nginx controller still have this problem?

I've been using gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.11 for a few weeks with no issues with a memory limit of 400MB on kubernetes (actual use is around 130MB for several hundred ingress rules)

@aledbf @Malet we are seeing similar issues on 0.9.0-beta.11. nginx-controller pods have no resource limits or requests, as we run two of them on two dedicated nodes a DS, so they are free to do as they wish.
Our current belief is:

liveness check on the pods was always returning 301 because curl didn't have -L specified [why this doesn't fail is another question]
nginx controller checks the upstreams liveness probe to see if it's ok
kubectl apply on a service type causes nginx-controller to reload upstreams
bad liveness check makes it think the upstream is unavailable
why it only happens periodically, ___?

In my environment, I solve this issue to decrease worker process in nginx.conf.
my server has 58 core so 58 nginx worker processes has running(worker_processes option is auto)
ingress pod have OOM error repeatedly,  It's same when I change ingress image to latest.
when I decrease worker process from auto to 8, 503 error doesn't appear anymore, It doesn't look like image problem.


Unable to load storage account: "Error loading property"

Storage Explorer Version: 1.4.1
Platform/OS Version:  Windows 7
Architecture: Unknown
Regression From: Yes
Steps to Reproduce:

Open Microsoft Azure Storage Explorer
Expand account > storage accounts > cavenders

Expected Experience:
Should load blob container with multiple repositories.
Actual Experience:
Unable to load properties:

The first thing we try to retrieve from the storage account are the account keys (Primary Key and Secondary Key). Without those, nothing else works.
Unless Azure was just down for a little while, the only reason I can think you weren't able to get keys is because the account administrator removed your permissions to list account keys.
One way to be sure is to check the result of the operation:

Launch Storage Explorer.
Expand the tree until your account appears.
Hit F12 to open the dev tools. Expand the console window and share any error messages you see.
In the Sources tab, hit Ctrl+P and enter "AzureStorageAccountAttributeLoader.js"
Find the getKeys function and drop a breakpoint on line 182:if (!!result.keys) {

Refresh the account node (right-click and select Refresh).
Examine the value of the result variable by hovering your mouse cursor over it. Look for values, such as keys or primaryKey.

If you're not seeing anything, or the breakpoint isn't being hit at all, let us know!.

This resolved the issue, thank you!

@arogers89, can you explain what exactly fixed the issue so that others finding their way here can benefit?

I am experiencing this issue with reader accounts.  The reader accounts do not load the primary or secondary key properties.  Per the debug instructions from @craxal the reader accounts never hit line 182.  However, the owner accounts do hit line 182.
Any help in trying to resolve this would be appreciated.

@dfknowles, it looks very much like role-based access control (RBAC) may have been enabled on the subscriptions/accounts you're trying to connect to. Unless you the List Account Keys permission, Storage Explorer won't work, because RBAC support is not yet implemented. Can you verify whether RBAC is enabled in your subscriptions/accounts?

@craxal thanks for the reply.  After experimenting with permissions I needed to assign the user to the "Reader and Data Access" role in order for them to see the containers and blobs.  The "Reader" role allows the user to see the container, but they cannot access the blobs in the container.

Good to hear! If there's nothing else, I'll go ahead and close this issue.


[Crash Report] LOADING Icon causes crash on ios.

Flutter: 1.61.1
iOS: 13.3

I think this may be the compatibility problem, when we use flutter 1.15 on ios, it works fine, and flutter 1.16 on Android works fine, and others icon works fine too.

Appeared on Flutter new version 1.17.
Will this be fixed? Really want to use it.

Appeared on Flutter new version 1.17.
Will this be fixed? Really want to use it.


simply_expressions panics on unsupported evaluations

Describe the bug
I have a SQL query that includes CAST('2022-02-22' as DATE) + INTERVAL '30 days' and the simplify_expression optimizer rule attempts to evaluate this expression but panics because that is not supported.
To Reproduce
I am about to put up a PR with a test and a fix.
Expected behavior
The code should handle the error gracefully.
Additional context
None

This issue was not valid.


ms_triggerstp.sas

Provide a SAS macro to request the execution of a stored program and record the SAS session ID of the initiated job.

Relevant issue on sasjs/server side:  https://github.com/sasjs/server/issues/373


Error building PerfectThread

Hi
When I run the following in terminal...
git clone https://github.com/PerfectlySoft/PerfectTemplate.git
cd PerfectTemplate
swift build
.build/debug/PerfectTemplate
I get the following error.
Compile Swift Module 'PerfectThread' (2 sources)
/Users/gary/PerfectTemplate/Packages/PerfectThread-0.10.0/Sources/ThreadQueue.swift:210:97: error: cannot convert value of type 'UnsafeMutablePointer' (aka 'UnsafeMutablePointer<()>') to expected argument type 'UnsafeMutablePointer<_>'
let unleakyObject = Unmanaged.fromOpaque(UnsafeMutablePointer(p)).takeRetainedValue()
^
/Users/gary/PerfectTemplate/Packages/PerfectThread-0.10.0/Sources/ThreadQueue.swift:233:37: error: value of type 'Unmanaged' has no member 'toOpaque'
let leakyObject = Unmanaged.passRetained(holderObject).toOpaque()
^~~~~~~~~~~~~~~~ ~~~~~~~~
:0: error: build had 1 command failures
error: exit(1): /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/gary/PerfectTemplate/.build/debug.yaml
Garys-MacBook:PerfectTemplate gary$ .build/debug/PerfectTemplate
-bash: .build/debug/PerfectTemplate: No such file or directory

Same for problem me. Commnand line tools set properly to Xcode 8.0 (8S128d) as per the guide instructions.

I have the same problem on mac OS

I'm also seeing this same issue. Fresh install of Xcode 8.0 (8S128d) with the 6/20 swift development snapshot and the command line tools set to 8.0 (8S128d).

I have the same error -> Ubuntu 14.04 LTS

I have the same error, using latest development snapshot from June 20th.

If you have installed xcode 8, you can solve the problem this way:
https://camo.githubusercontent.com/e2cbfcd5b784b0489653bf2bbf756b4693d369b3/687474703a2f2f7777772e706572666563742e6f72672f646f63732f6173736574732f78636f64655f70726566732e706e67

very weird. i had done that already, and i didn't need to change anything, but it works now, as if by magic. thanks anyway!

What about Linux without xcode?

Ok I think I've nailed it! The problem for me was that I wasn't careful in reading the instructions. Although I installed the latest beta of Xcode 8.0 (8S128d) and subsequently set the command line tools to use it, I didn't download and install the latest Swift snapshot (DEVELOPMENT-SNAPSHOT-2016-06-20-a). Make sure you install it and set the $PATH variable to use it. The path is
/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin
The terminal should produce the following
$ swift --version Apple Swift version 3.0-dev (LLVM c191431197, Clang c6195325c5, Swift add621a959) Target: x86_64-apple-macosx10.9
The error was thrown because of the wrong version of Swift in the following call
swift build
I hope this helps!

there is an error when i build project
'webTestProj' /Users/ylbl/Desktop/webTestProj: error: dependency 'PerfectHTTPServer' in target 'webTestProj' requires explicit declaration; provide the name of the package dependency with '.package(name: "PerfectHTTPServer", url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", from: "3.0.0")'
can someone help me, tell me how to do


OptionList background is transparent

...and there doesn't seem to be a way to set one

I'm using RN 0.15.0

oh, so apparently the parent of OptionList needs to have a backgroundColor set, strange. well, the problem is resolved now!

@bodyflex Same problem.Can you make a simple example code for solution?Thank you!

just set backgroundColor to any color on the parent of OptionList
<View style={{backgroundColor: '#fff'}}>
    ...
    <OptionList />
</View>

@bodyflex Thank you,guys

@marsprince @bodyflex  When I set the parent component of the background color, lead to cannot click on the select, there's no way to change the background color optionlist

@amibition521 Put the Select component to the last may help.

Hi,
Thanks for update.
How can I set foreground color on each option? Please suggest.


Missing connecting to the instances in VMSS using private IP

It is also possible to connect to VMSS individual instance by using its private IP, you can find it at its load balancer's backend pool, then use ssh directly.  In the enterprise where its security policy doesn't allow to connect instances by using public IP in the cloud, it is important to know how to manage it.

@cloudmelon : Thanks for your contribution! The author, @iainfoulds, has been notified to review your proposed change.

You can, yes. Thanks for the suggestion. However, in the scope of this tutorial, the NAT rules are used as the most straightforward way.
The private IP addresses also may not be accessible without additional network connectivity. In real-world deployments you would typically use a single jumpbox or a VPN/ExpressRoute connection to your environment.
These tutorials are designed to show the simplest way to get a given task done and basic commands, not a complete and secure deployment. We have a backlog work item to show a complete deployment more along the lines of your suggestion. There also existing quickstart templates, such as https://github.com/Azure/azure-quickstart-templates/tree/master/201-vmss-linux-jumpbox
#please-close

ok. Thank you for your answer :)


Inconsistent Retention Errors with Refresh Disabled Before Memory Writes

Description
I observed an unexpected behavior when testing retention errors by disabling DRAM refresh. When I disable refresh after writing to a row, the expected retention errors occur, but when I disable refresh before the write, no errors are observed, even after significantly increasing the delay.
Code Examples and Behavior
Working Case (Errors Observed)
In the code snippet below, I disable refresh after writing data to a row and hold the data for 10 seconds.

Expected Behavior
Given that the DRAM refresh is disabled for an extended period, I would expect the data written in the row to degrade over time due to retention errors, especially with a hold time of up to a full minute. Instead, I see no errors, indicating that all the bits remain intact.
Possible Issue
It appears that disabling the refresh before the data is written might be affecting the internal state of the memory subsystem, leading to unexpected behavior. This could suggest that disabling the refresh is influencing the logic of the platform beyond strictly stopping refresh operations, possibly impacting other signals or internal mechanisms that maintain the data's integrity.
Steps to Reproduce

Use the initial script setup that writes a known pattern (0xffffffff) to a row.
Disable refresh before the write and wait for 10 seconds.
Read back the contents and verify if the pattern remains intact.
Compare this with the behavior when disabling refresh after the write.

Does disabling refresh influence internal signals or logic beyond simply stopping refresh operations?
The full script is here:
#!/usr/bin/env python3

import time

from rowhammer_tester.gateware.payload_executor import Encoder, OpCode
from rowhammer_tester.scripts.utils import memdump, memread, memwrite, DRAMAddressConverter, RemoteClient, read_ident, \
    get_litedram_settings

# Sample program

encoder = Encoder(bankbits=5, nranks=2)
row = 0
PAYLOAD = [
    encoder(OpCode.NOOP, timeslice=50),
    encoder(OpCode.PRE, timeslice=20, address=encoder.address(rank=0, bank=0)),
    encoder(OpCode.ACT, timeslice=20, address=encoder.address(rank=0, bank=0, row=row)),
    encoder(OpCode.READ, timeslice=20, address=encoder.address(rank=0, bank=0, col=0 | (1 << 11))),
    encoder(OpCode.NOOP, timeslice=50),
]

def execute(wb):
    program = [w for w in PAYLOAD]
    program += [0] * (wb.mems.payload.size // 4 - len(program))  # fill with NOOPs

    # Write some data to the column we are reading to check that scratchpad gets filled
    converter = DRAMAddressConverter.load()
    data = [0xffffffff] * 128
    memwrite(wb, data, base=converter.encode_bus(bank=0, row=row, col=0))

	self.regs.controller_settings_refresh.write(0)
    time.sleep(10)
	self.regs.controller_settings_refresh.write(1)

    print('\nTransferring the payload ...')
    memwrite(wb, program, base=wb.mems.payload.base)

    def ready():
        status = wb.regs.payload_executor_status.read()
        return (status & 1) != 0

    print('\nExecuting ...')
    assert ready()
    wb.regs.payload_executor_start.write(1)
    while not ready():
        time.sleep(0.001)

    print('Finished')

    print('\nScratchpad contents:')
    scratchpad = memread(wb, n=16, base=wb.mems.scratchpad.base)
    memdump(scratchpad, base=0)

if __name__ == "__main__":
    wb = RemoteClient()
    wb.open()
    print("Board info:", read_ident(wb))

    execute(wb)

    wb.close()

Hi,
Could you run this test for me?
converter = DRAMAddressConverter.load()
data = [0xffffffff] * 128

self.regs.controller_settings_refresh.write(0)

memwrite(wb, data, base=converter.encode_bus(bank=0, row=row, col=0))
memwrite(wb, data, base=converter.encode_bus(bank=0, row=(row+1), col=0))

time.sleep(10)
self.regs.controller_settings_refresh.write(1)

I wonder if disabling refresh cases the row to stay opened,
with its contents still in the SRAM buffer.

Hi @mtdudek, thanks for the very fast correct answer 👍  It does make a difference. With your code, it works again.

A quick follow-up question: Is the SRAM buffer the L2 cache, whose size is configured at build time?

SRAM buffer is a part of the DRAM data circuitry.
During ROW activation data is set on the column lines, which are then amplified using analog amplifiers and these values are stored in the access buffer(SRAM)


Release

@CodiumAI-Agent /review

PR Analysis

🎯 Main theme: Adding new features and cleaning up the code
📝 PR summary: This PR seems to be a significant update to the project. It includes the addition of new features, such as a leaderboard and user handles, implemented in JavaScript. It also includes a cleanup of the codebase, with several files being deleted, and the addition of new ones. The PR also includes updates to the project's Gradle configuration and GitHub workflows.
📌 Type of PR: Enhancement
🧪 Relevant tests added: No
⏱ Estimated effort to review [1-5]: 4, because the PR includes a significant amount of new code across multiple files, and it requires a good understanding of different technologies (JavaScript, Gradle, GitHub workflows) to review effectively.
🔒 Security concerns: No

PR Feedback
💡 General suggestions: The PR includes a significant amount of new code, which is generally well-structured and follows good practices. However, it would be beneficial to include some tests to ensure the new features work as expected. Additionally, it would be helpful to include more detailed commit messages to provide a clearer understanding of the changes made in each commit.
 🤖 Code feedback:relevant filesrc/main/resources/app.jssuggestion
Consider using fetch instead of XMLHttpRequest for making HTTP requests, as it provides a more powerful and flexible feature set. [medium]
relevant linevar httpRequest = new XMLHttpRequest();relevant filesrc/main/resources/users.jssuggestion
It seems like the check_url function is being called for each cell in the grid. This could potentially lead to performance issues if the grid is large. Consider optimizing this part of the code. [important]
relevant linecellStyle: function (params) {relevant filesrc/main/resources/app.jssuggestion
It's good practice to handle errors in a user-friendly way. Consider adding a user-friendly error message in the error callback of the makeRequest function. [medium]
relevant linehttpRequest.onerror = function () {relevant filesrc/main/resources/users.jssuggestion
The $.ajax call is made immediately when the document is loaded. If the request takes a long time, it might block the rendering of the page. Consider making the request asynchronously or after the page has been rendered. [medium]
relevant line$.ajax({

 ✨ Usage guide:
Overview:
The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...

With a configuration file, use the following template:
[pr_reviewer]
some_config1=...
some_config2=...

  Utilizing extra instructions
The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.
Examples for extra instructions:
[pr_reviewer] # /review #
extra_instructions="""
In the code feedback section, emphasize the following:
- Does the code logic cover relevant edge cases?
- Is the code logic clear and easy to understand?
- Is the code logic efficient?
...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  How to enable\disable automation

When you first install PR-Agent app, the default mode for the review tool is:

pr_commands = ["/review", ...]

meaning the review tool will run automatically on every PR, with the default configuration.
Edit this field to enable/disable the tool, or to change the used configurations

  About the 'Code feedback' section
The review tool provides several type of feedbacks, one of them is code suggestions.
If you are interested only in the code suggestions, it is recommended to use the improve feature instead, since it dedicated only to code suggestions, and usually gives better results.
Use the review tool if you want to get a more comprehensive feedback, which includes code suggestions as well.

  Auto-labels
The review tool can auto-generate two specific types of labels for a PR:

a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)

  Extra sub-tools
The review tool provides a collection of possible feedbacks about a PR.
It is recommended to review the possible options, and choose the ones relevant for your use case.
Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
require_score_review, require_soc2_review, enable_review_labels_effort, and more.

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the review usage page for a comprehensive guide on using this tool.

PR Review

 ⏱ Estimated effort to review [1-5]
5, because the PR includes a significant number of changes across multiple files, including Java, Python, Shell scripts, GitHub Actions workflows, and web resources. The complexity and diversity of the changes, spanning from backend logic to deployment configurations, necessitate a thorough review to ensure functionality, compatibility, and adherence to best practices.

 🧪 Relevant tests
No

 🔍 Possible issues

Possible Bug: The main.py script in usernameVerifier directory might not correctly handle URLs containing special characters or spaces due to the way it constructs URLs for verification. This could lead to false negatives in URL existence checks.

Performance Concern: The GitHub Actions workflow verifier.yml might face rate limiting issues or increased execution time due to the sequential processing of different platforms (GeeksForGeeks, Codeforces, etc.) and the lack of parallelization.

Security Concern: The hard-coded GitHub and email credentials in gradlew and possibly other scripts/files could expose sensitive information. It's recommended to use environment variables or secrets for such sensitive data.
 🔒 Security concerns
Sensitive information exposure: The script gradlew contains placeholders that suggest the possibility of hard-coded credentials, which could lead to the exposure of sensitive information if actual credentials are used in this or any other file.

 Code feedback:
relevant fileusernameVerifier/main.py
suggestion

Consider URL encoding the handles before constructing the URL to ensure that special characters are correctly handled. This can prevent potential issues with URL formation and improve the reliability of URL existence checks. [important]

relevant lineurl = LEETCODE_QUERY.replace("{}", encoded_leetcode_handle)
relevant file.github/workflows/verifier.yml
suggestion

Implement parallel execution for platform-specific jobs in the GitHub Actions workflow to reduce the overall execution time and improve efficiency. This can be achieved by removing the needs dependency between jobs that can run independently. [important]

relevant lineneeds: build
relevant filegradlew
suggestion

Remove any actual hard-coded credentials and replace them with environment variables or GitHub secrets. This practice enhances security by preventing sensitive information from being exposed in the codebase. [important]

relevant lineusername =<EMAIL_ADDRESS>relevant file.github/workflows/static.yml
suggestion

Update the deployment action to the latest version for improved features and security fixes. Ensure that all actions used in the workflow are up to date. [medium]

relevant lineuses: actions/deploy-pages@v4

 ✨ Review tool usage guide:
Overview:
The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...

With a configuration file, use the following template:
[pr_reviewer]
some_config1=...
some_config2=...

  Utilizing extra instructions
The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.
Examples for extra instructions:
[pr_reviewer] # /review #
extra_instructions="""
In the 'possible issues' section, emphasize the following:
- Does the code logic cover relevant edge cases?
- Is the code logic clear and easy to understand?
- Is the code logic efficient?
...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  How to enable\disable automation

When you first install PR-Agent app, the default mode for the review tool is:

pr_commands = ["/review", ...]

meaning the review tool will run automatically on every PR, with the default configuration.
Edit this field to enable/disable the tool, or to change the used configurations

  Auto-labels
The review tool can auto-generate two specific types of labels for a PR:

a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)

  Extra sub-tools
The review tool provides a collection of possible feedbacks about a PR.
It is recommended to review the possible options, and choose the ones relevant for your use case.
Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
require_score_review, require_soc2_ticket, and more.

  Auto-approve PRs
By invoking:
/review auto_approve

The tool will automatically approve the PR, and add a comment with the approval.
To ensure safety, the auto-approval feature is disabled by default. To enable auto-approval, you need to actively set in a pre-defined configuration file the following:
[pr_reviewer]
enable_auto_approval = true

(this specific flag cannot be set with a command line argument, only in the configuration file, committed to the repository)
You can also enable auto-approval only if the PR meets certain requirements, such as that the estimated_review_effort is equal or below a certain threshold, by adjusting the flag:
[pr_reviewer]
maximal_review_effort = 5

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the review usage page for a comprehensive guide on using this tool.


Strange Error using Example Code

This package looks exactly like what I'm looking for.
To test integration with my project, I copied and pasted some example code found in the demo
Works fine, but I get a truncated "undefined" tag in the list with no background, no matter what I do.

The code generated for that 'undef' element is
<input type="text" autocomplete="off" spellcheck="false" aria-label="Type a value" placeholder="" size="1" style="background-color: transparent; border: 0px; outline: 0px; max-width: 100%; min-width: 8px;">
I've looked for guidance (searching for "Bootstrap tags lekoala 'undefined'"  and other permutations) but can't find any help.
I may be missing something here, but (respectfully) this looks like a bug.
Any help?
Platform: Win10
JQuery: 3.6
Bootstrap: 5.1

Strange. When I populate with data from my backend it works perfectly.
Closing.

@scath999 that's an odd one :)
the input is the one i use to type the text, it seems that somehow you get an undefined value
the only line that can do that is when you paste something or have an input event
      this._searchInput.value = this._searchInput.value.slice(0, -1);

but even then i'm not sure what it's not working ;-) let me know if you get the issue again, it should be fairly easy to debug there are only a limited number of places where that could come from

@lekoala I'll keep an eye out - very kind of you to follow up.
Cheers!


Wrong frameWidth & slidesWidth in app webviews

Hey!
I just wanted to submit this issue that is kind of specific.
In webviews that are provided inside an app it happended to me that the frameWidth & slidesWidth where not correct and therefore the sliding overall would not work.
To fix this for now if have now rewritten a part of the slide function for the maxOffset.
I now have a call in there for the width of a slide and the number of slides.
For a correct sliding you just need to assign now frameWidth with the slide width and slidesWidth is frameWidth * number of slides.
I know this is a not very elegant solution but for now it was the only thing that worked for me.
Does anyone else have maybe a more elegant solution to this or is it somehow possible to make the assignment of the variables later in the script in order for the webview to fully "expand"?

Hey @Zeladin,
seems that nobody else had an issue like this. I will close this issue for now, but feel free to provide a generic example with your problem and we will have a look.
Thank you
Cheers Max


Add quote element

This PR adds a quote element and resolves #105.
The quote element has the following parameters:

block:  bool           = false, block or inline
quotes: bool | auto    = auto, add quotes or not, if auto then !block
source: none | str     = none, the destination URL to wrap this quote in
author: none | content = none, the quote author
body: content

An inline quote is formatted like so and respects text direction, author and quote are swapped on text(dir: rtl):
And I quote: #quote(author: [René Descartes])[cogito, ergo sum], because it is a great quote.

A block quote is formatted similar to quotes commonly used in emails:
#quote(author: [René Descartes], block: true)[cogito, ergo sum]

As you can see, quotes: auto does not yet work as expected when passing block: true explicitly. I suspect I need to resolve to Smart<bool> and check in Show::show whether this was Smart::Auto or something similar. I looked at TextDir for inspiration here.
I'm also not entirely sure if the spacing of the block element and the author when given is satisfactory.
The source parameter is motivated by the html blockquote, as seen in #105.
Future Work
Ideally, after work has finished on this, it could be used as basis for introducing dedicated syntax at least for block quotes using:
> Blockquote
> > Nested Blockquote
> Blockquote
> Blockquote

The clippy failure in CI is about collapsing nested if blocks, but I think that a) the code gets less readable and b) will likely change with the next commit to make clippy happier.

The way Finalize is currently used is also definitely not correct as it would interfere with user-defined show rules. That was more of an attempt to make the stroke color settable show quote: set block(stroke: (left: red)).

Block quotes now look like this by default:

And allow setting the alignment of the body show quote: set align(center) without affecting the author alignment being end:

I had a look at the styles and the arguments and have a few remarks:

The author attribution in the inline quotation looks awkward. Maybe it should just be suppressed.
The block-level quote is missing spacing above. It is too tight with the surrounding paragraphs atm. You may need to use disgression to insert spacing below as well.
The author attribution for block-level quotes should be closer to the quote.
Inline quotes suppress their source if they are missing an author.
The source is appended directly after the text. It should be separated from the quote by a space, and maybe a comma.
For block-level quotes, the source should be placed in the author attribution.

I'm not sure whether the combination of author and source attributes is the best solution for attribution. First of all, the collision with URLs in source can be solved by passing a label:
#quote(block: true, author: "Honoré de Balzac", source: <humaine>)[Bonjour]

or maybe even

#quote(block: true, author: "Honoré de Balzac")[Bonjour] @humaine

The latter alternative uses the fact that the reference syntax already semantically attaches the reference to the content before it. The quote should be rendered like this:
   Bonjour
          -- Honoré de Balzac, [1]

However, we will run into problems with citation styles like chicago-author-date which a) already contain the author and b) are parenthesized which results in a bit of a mess. CSL (implementation upcoming) is already able to differentiate these styles with the citation-format attribute, for the current styles we'd need to do it manually. Given the styles there, I propose the following behavior:

numeric and label: Put the author, then a comma, and then the unchanged citation (e.g. "belle hooks, [1]")
note: Put the author and then the footnote (e.g. "Thomas Mann¹")
author-date, author: Suppress the author, remove any parentheses around the cite and print it ("Einstein and Laub, 1908")

Arguabely, the author argument is not needed at all if we got a reference since we can extract the author from the Hayagriva database, but I'll leave this up to discussion.

The author attribution in the inline quotation looks awkward. Maybe it should just be suppressed.

Fine with me, the user can just use a show rule after all.

The block-level quote is missing spacing above. It is too tight with the surrounding paragraphs atm. You may need to use disgression to insert spacing below as well.

I went with 0.5em padding here, you'll likely have to tell me the appropriate defaults for this, as I don't really have an eye for spacing like that. I'm not sure what is meant with digression in a typesetting context.

The author attribution for block-level quotes should be closer to the quote.

Once again, I went with h(1em, weak: true), this looks at least to my eye like the regular line height. But I think this is font dependent, right? Regardless, I need some advice what you guys think is right here.

Inline quotes suppress their source if they are missing an author.

Yup, that should be fixed now.

For block-level quotes, the source should be placed in the author attribution.

That was actually intended, not sure how I overlooked that while testing, I added more test cases.
So I went with the label solution, I forgot that I could simply extract the string from it to use in CiteElem::new. The problem with the @label solution is that I don't know whether the next element is a CiteElem. Since the quote is wrapped in PadElem it would not display like that without knowing this and "pulling it inside" so to speak.

I'm not sure whether the combination of author and source attributes is the best solution for attribution.

I think you're right, it probably makes sense to merge author and source into an attribution property. On Wikipedia for "I know that I know nothing" we see this:

... ἔοικα γοῦν τούτου γε σμικρῷ τινι αὐτῷ τούτῳ σοφώτερος εἶναι, ὅτι ἃ μὴ οἶδα οὐδὲ οἴομαι εἰδέναι.
... I seem, then, in just this little thing to be wiser than this man at any rate, that what I do not know I do not think I know either. [from the Henry Cary literal translation of 1897]

The attribution is not just the author but additional information about the translation, so just author for the field makes less sense.
Attributions could work like this:

attribution: <humaine>, equivalent to attribution: {set ...; [@humaine]} with the specified set cite(bracket: false) for some styles
attribution: [...], anything else

If the user wants to link the whole quote, they can do it themselves instead. For inline quotes, a bib attribution would simply append the attribution as is. But it should probably not be suppressed by default the way author was.
One problem, I see with this, is that attribution: <humaine> for non-author styles would render just -- [1] or --¹. We could simply warn on those styles when only a label is passed.
Another problem is that a change in citation style between those would now need manual edits to all attributions. Perhaps the attibution should have an optional prefix which is only used for the non-author styles:

quote(attribution: <humaine>) equaivalent to quote(attribution: (prefix: none, label: <humaine>)
quote(attribution: (prefix: [Honoré de Balzac], label: <humaine>))

resulting in Honoré de Balzac¹/ Honoré de Balzac, [1] on notes/numeric and in Honoré de Balzac/Honoré de Balzac, #date on author/author-date.
But this seems like quite a lot of rules to keep in mind as a user and I'm wondering if you have better ideas.

I went with 0.5em padding here, you'll likely have to tell me the appropriate defaults for this, as I don't really have an eye for spacing like that. I'm not sure what is meant with digression in a typesetting context.

I pushed some spacing constants. By disgression I just meant that you'd need to check if the below spacing still looked good with another above spacing.

Attributions could work like this:

Sounds good

One problem, I see with this, is that attribution: <humaine> for non-author styles would render just -- [1] or --¹. We could simply warn on those styles when only a label is passed.

We can do that for the moment, but we'd want to retrieve the entry and print the authors in the future.

Another problem is that a change in citation style between those would now need manual edits to all attributions. Perhaps the attribution should have an optional prefix which is only used for the non-author styles

Given the future behavior, I think we can do without a prefix right now.

By disgression I just meant that you'd need to check if the below spacing still looked good with another above spacing.

I added blocks with no spacing (left) and 1em spacing (right) around the lorem, the spacing seems fine to me, but since the defaults are very small it is hard to see, once we go above those they collapse the padding it seems, I'm not fully aware of how weakness works for vertical spacing.

We can do that for the moment, but we'd want to retrieve the Hayagriva entry and print the authors in the future.

I left a TODO in the section that defines the style, linking to the comments above. I've added a small example for and note explaining that -- [1] and --¹ will be fixed and how they can be worked around for now.

Labels definitely make sense for attribution. I wonder whether cite should also take labels instead of strings ...

Yes, that makes sense, citing keys with spaces is still possible although more cumbersome (cite(label("key with spaces"))), but that should be fine no one uses spaces in their bib keys riiiight?

Thank you!


Bug: Wrong grid count

When I add a grid to my chart, the checkToShowHorizontalLine method counts one less than the maxY. Example:

    BarChart(
      BarChartData(
        maxY: 5,
        gridData: FlGridData(
          show: true,
          checkToShowHorizontalLine: (value) {
            print(value);
            return true;
          },
          getDrawingHorizontalLine: (value) => FlLine(
            color: Colors.black,
            strokeWidth: 1,
          ),
        ),
      ),
    );

The result of the print(value) will be:
1.0
2.0
3.0
4.0

The maxY is 5 but, when building the grid, it passes only 4 values, so the chart draws only four lines instead of 5.
(sorry for the bad English)

Yes, actually it should be like this:
0.0
1.0
2.0
3.0
4.0
5.0
but because we are showing the Border around the chart, we don't count the first and the last lines,
we skip 0.0 and 5.0.
Does it make sense?

It makes sense, but even with the border disabled the counter still countes from 1 to 4. And, sometimes i do want to add the last line in the grid and the border at the same time, but following your logic i can't.
(sorry for the bad english again, but i think you can understand)

No worries man, I'm not native English too.
May I ask you to explain your case?
How border and grids are not enough for you?

I think this is not an important issue,
people can use the FlBorderData for the first and the last line of the grid.

Oh, thanks for the advice. I wouldn't think on using the border as the last line.


Rename containerd-rootless-setuptool.sh

containerd-rootless-setuptool.sh is now containerd-rootless-systemd.sh
To clarify what this tool does.
Closes #66.

Hi @abitrolly, I don't think is a good idea to  suffix the script name by systemd as it setups multiple (buildkit, containerd..) tool using systemd. We may add some notes to doc.

@fahedouch then it is probably containerd prefix that should be removed. Something like setuptool-rootless-systemd.sh.

For the sake of compatibility the script name shouldn’t be changed unless there is an extremely convincing reason.
Also, the script may potentially support non-systemd inits (if somebody works on it).
So I’m rejecting this PR.