NHL.com Videos Started Throwing a 'urlopen error' on all videos

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2021.12.27. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[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
US
Description
First off, thanks for this awesome program. I've been running dlp on a headless ubuntuserver without issue since the initial fork way back when.
I have a bash script that's been running to automatically download videos from various NHL teams' websites. Up until a few days ago, it's been working without issue. However, I only realized today that it looks like the scritps are erroring out and failing to download. I haven't made any changes to my script or config files, so I'm assuming something changed on the NHL's end (or I'm making a fairly obvious mistake that I'm missing).
I can't quite tell what's happening, since sometimes it seems like the video will error out and fail, and sometimes the video will download, however the download will take EXTREMEMLY long (like 30 - 45 minutes for a a 5 - 6 minute video on a gigabit connection).
In the log below, I tried to download this video multiple times, and eventually it did download, but it took a REALLY long time.
Verbose log
kevin@linuxserver:~/youtube-dl/scripts$ ./ytdl-devilsnhldotcomrecaps https://www.nhl.com/devils/video/recap-njd-4-buf-3/t-277443724/c-10044702
[debug] Command-line config: ['--config-location', '/home/kevin/youtube-dl/configs/config.txt', '-o', '/home/kevin/youtube-dl/temp-downloads/devils-recaps-tmp/20211231 - %(title)s.%(ext)s', '--match-title', '(?=.*Recap)', '-v', 'https://www.nhl.com/devils/video/recap-njd-4-buf-3/t-277443724/c-10044702']
[debug] Custom config file: /home/kevin/youtube-dl/configs/config.txt
[debug] Custom config: ['-S', 'res,codec:vp9.2:opus,br,fps', '--merge-output-format', 'mkv', '--extractor-args', 'youtube:player_client=android', '--write-info-json', '--write-thumbnail', '--convert-thumbnails', 'jpg', '--write-sub', '--add-metadata', '--embed-subs', '--embed-thumbnail', '--add-metadata', '--sponsorblock-remove', 'all', '--ignore-errors', '--proxy', '', '--throttled-rate', '100K', '--download-archive', '/home/kevin/youtube-dl/archives/downloaded.txt', '--no-check-certificate']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, err UTF-8, pref UTF-8
[debug] yt-dlp version 2021.12.27 [6223f67a8]
[debug] Python version 3.6.9 (CPython 64bit) - Linux-4.15.0-163-generic-x86_64-with-Ubuntu-18.04-bionic
[debug] exe versions: ffmpeg 4.3.2-0york0, ffprobe 4.3.2-0york0
[debug] Optional libraries: Cryptodome, secretstorage, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] Loading archive file '/home/kevin/youtube-dl/archives/downloaded.txt'
[debug] [nhl.com] Extracting URL: https://www.nhl.com/devils/video/recap-njd-4-buf-3/t-277443724/c-10044702
[nhl.com] 10044702: Downloading JSON metadata
[nhl.com] 10044702: Downloading m3u8 information
WARNING: [nhl.com] Failed to download m3u8 information: <urlopen error [Errno 0] Error>
[nhl.com] 10044702: Downloading m3u8 information
WARNING: [nhl.com] Failed to download m3u8 information: <urlopen error [Errno 0] Error>
[nhl.com] 10044702: Downloading m3u8 information
WARNING: [nhl.com] Failed to download m3u8 information: <urlopen error [Errno 111] Connection refused>
[nhl.com] 10044702: Downloading m3u8 information
WARNING: [nhl.com] Failed to download m3u8 information: <urlopen error [Errno 111] Connection refused>
[nhl.com] 10044702: Downloading m3u8 information
WARNING: [nhl.com] Ignoring subtitle tracks found in the HLS manifest; if any subtitle tracks are missing, please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; see  https://github.com/yt-dlp/yt-dlp  on how to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_60-552 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_60-966 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_60-1360 video format URL
[nhl.com] 10044702: HTTP_CLOUD_WIRED_60-1360 video format URL is invalid, skipping: <urlopen error _ssl.c:835: The handshake operation timed out>
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_60-2001 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_60-2770 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_60-3897 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_60-6159 video format URL
[nhl.com] 10044702: Downloading m3u8 information
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_WEB-552 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_WEB-966 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_WEB-1360 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_WEB-2001 video format URL
[nhl.com] 10044702: HTTP_CLOUD_WIRED_WEB-2001 video format URL is invalid, skipping: <urlopen error _ssl.c:835: The handshake operation timed out>
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_WEB-2770 video format URL
[nhl.com] 10044702: Checking HTTP_CLOUD_WIRED_WEB-3897 video format URL
[nhl.com] 10044702: HTTP_CLOUD_WIRED_WEB-3897 video format URL is invalid, skipping: <urlopen error [Errno 0] Error>
[debug] Sort order given by user: res, codec:vp9.2:opus, br, fps
[debug] Formats sorted by: hasvid, ie_pref, res, vcodec:vp9.2(10), acodec:opus(11), tbr, vbr, abr, fps, lang, quality, hdr:12(7), filesize, fs_approx, asr, proto, vext, aext, hasaud, source, id
[SponsorBlock] SponsorBlock is not supported for NHL
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 10044702: Downloading 1 format(s): HTTP_CLOUD_WIRED_60-6159
[info] Downloading video thumbnail 12 ...
[info] Writing video thumbnail 12 to: /home/kevin/youtube-dl/temp-downloads/devils-recaps-tmp/20211231 - Recap - NJD 4, BUF 3.jpg
[info] Writing video metadata as JSON to: /home/kevin/youtube-dl/temp-downloads/devils-recaps-tmp/20211231 - Recap - NJD 4, BUF 3.info.json
[ThumbnailsConvertor] Thumbnail "/home/kevin/youtube-dl/temp-downloads/devils-recaps-tmp/20211231 - Recap - NJD 4, BUF 3.jpg" is already in the requested format
[debug] Invoking downloader on "https://hlslive-wsczoominwestus.med.nhl.com/publish-hls/4098739/5598866/game.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 76
[download] Destination: /home/kevin/youtube-dl/temp-downloads/devils-recaps-tmp/20211231 - Recap - NJD 4, BUF 3.mp4
[download]   2.6% of ~233.56MiB at 67.31KiB/s ETA 34:02 (frag 2/76)ERROR: unable to download video data: <urlopen error [Errno 0] Error>
Traceback (most recent call last):
  File "/usr/lib/python3.6/urllib/request.py", line 1325, in do_open
    encode_chunked=req.has_header('Transfer-encoding'))
  File "/usr/lib/python3.6/http/client.py", line 1285, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1331, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1280, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1046, in _send_output
    self.send(msg)
  File "/usr/lib/python3.6/http/client.py", line 984, in send
    self.connect()
  File "/usr/lib/python3.6/http/client.py", line 1446, in connect
    server_hostname=server_hostname)
  File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/usr/lib/python3.6/ssl.py", line 817, in __init__
    self.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 1077, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
OSError: [Errno 0] Error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/YoutubeDL.py", line 2991, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/YoutubeDL.py", line 2701, in dl
    return fd.download(name, new_info, subtitle)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/common.py", line 440, in download
    ret = self.real_download(filename, info_dict)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/hls.py", line 358, in real_download
    return self.download_and_append_fragments(ctx, fragments, info_dict)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/fragment.py", line 515, in download_and_append_fragments
    frag_content, frag_index = download_fragment(fragment, ctx)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/fragment.py", line 449, in download_fragment
    success, frag_content = self._download_fragment(ctx, fragment['url'], info_dict, headers)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/fragment.py", line 133, in _download_fragment
    success = ctx['dl'].download(fragment_filename, fragment_info_dict)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/common.py", line 440, in download
    ret = self.real_download(filename, info_dict)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/http.py", line 371, in real_download
    establish_connection()
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/http.py", line 119, in establish_connection
    raise err
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/downloader/http.py", line 113, in establish_connection
    ctx.data = self.ydl.urlopen(request)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/YoutubeDL.py", line 3458, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 526, in open
    response = self._open(req, data)
  File "/usr/lib/python3.6/urllib/request.py", line 544, in _open
    '_open', req)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/home/kevin/.local/lib/python3.6/site-packages/yt_dlp/utils.py", line 1394, in https_open
    req, **kwargs)
  File "/usr/lib/python3.6/urllib/request.py", line 1327, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 0] Error>

Turns out that it was an issue with my upstream dns provider on my 2 piholes. I updated my piholes, changed upstream dns providers, and now the issues seemed to have gone away. Apologies.

Turns out that it was an issue with my upstream dns provider on my 2 piholes. I updated my piholes, changed upstream dns providers, and now the issues seemed to have gone away. Apologies.


compatibility with flutter_localizations

Description

Type of Change

[ ] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ ] 📝 Documentation
[ ] 🗑 Chore

Hi @bgoncharuck do want to reopen it?

Hi @arturograu , I'm just using hash of this pull request for solving dependency problem with some SDKs.
It's not that important to merge, but now anyone who needs intl: ^0.17.0 as a dependency over   intl: ^0.18.0 can use country_flags plugin like it:
  country_flags:
    git:
      url: https://github.com/arturograu/country_flags.git
      ref: 94c9a51afcbf09a19931b2f0c7d968ee7c7e1376


Disable Google Analytics

Hi,
It would be nice to let us decide using of Google Analytics, as an optional feature. However, is there a way to disabled it?
Thanks.

Yes, there is already a flag.. --no-analytics
However, we really really would like users to keep analytics enabled as it helps us understand the number of deployed instances out there..
see http://portainer.readthedocs.io/en/stable/configuration.html for details on all flags.
Sent from my iPad
On 16/03/2017, at 3:03 PM, Nesim <notifications<EMAIL_ADDRESS>wrote:
Hi,
It would be nice to let us decide using of Google Analytics, as a optional feature. However, is there a way to disabled it?
Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_portainer_portainer_issues_678&d=DQMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=iBw0oMch9jTmWChrL0ZgxW7pP17GMtNWVj4qRjDPpeo&s=-43LOggXmk3QVJl_nMuQZtUWj9TtW-_iWSeaR2eCHzs&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AWGrlREdQFVBz-2D04VgC37dJvrhJOwbGMks5rmJhVgaJpZM4MewRO&d=DQMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=iBw0oMch9jTmWChrL0ZgxW7pP17GMtNWVj4qRjDPpeo&s=wshVfyvSocz-WKKCMaUbr-_gWLs07TBYorPWilNclIs&e=.

I can't see your Dockerfile, would you tell me which command you execute for that in order to define it in my docker-compose.yml file, please?
portainer:   image: portainer/portainer   ports:     - <IP_ADDRESS>:9000:9000    volumes:     - /var/run/docker.sock:/var/run/docker.sock

@nesimtunc
Add something like :
portainer:
  image: portainer/portainer
  command: --no-analytics
  ports:
    - <IP_ADDRESS>:9000:9000
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock

@nesimtunc indeed, use the --no-analytics flag or have a look at the example of @WTFKr0

--no-analytics (DEPRECATED - No Effect in v2.0): Disable analytics (default: false)
source: https://www.portainer.io/documentation/configuration-options/
And we can´t disable it anymore..

You can disable analytics during the init phase of new deployments, and you can disable in the settings page of Portainer.
You cannot disable via CLI when deploying, no.


trying out an experiment with videos

There was an error while validating job f1ecc08e-3164-4fc1-9fb7-b08b88d8ec20 Message:Error clonning repositoryDetails:System.ArgumentException: Error clonning repository ---> System.Exception: Error when trying to initialize shared repository ---> LibGit2Sharp.NotFoundException: Branch 426 not found. Available branches:
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.GetBranch(Repository repo, String name)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.<>c__DisplayClass3e.b__3d()
at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()
at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func1 func)    at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction(Action action)    at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.InitializeSharedRepository(String url, IDictionary2 branches, String sharedRepoPath)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.VerifySharedRepository(String url, IDictionary2 branches, String tempPath)    --- End of inner exception stack trace ---    at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.VerifySharedRepository(String url, IDictionary2 branches, String tempPath)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.CloneRepository(String url, IDictionary2 branches)    --- End of inner exception stack trace ---    at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.CloneRepository(String url, IDictionary2 branches)
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.CloneRepository()
at Microsoft.DPS.Services.LibGit2SharpSourceControlProvider.GetTreeAsync(String path, Boolean includeSubDirectories, String excludePath, IList1 extensionWhiteList)    at Microsoft.DPS.Commands.IdentifyDocumentsToPublish.ListSourceControlFilesCommand.Do(IDictionary2 context)
at Microsoft.LightweightJobEngine.Core.Language.JobWorkflow1.RunCommands(Guid jobId, IDictionary2 context, CancellationTokenSource cancelSignal)


Add A Chinese README

Hi, just coming from an dead project electron-vue , just saw your project here.
Just did a little work about readme , translated it into Chinese.
Hoping your project survive longer and always being activated.

Hello! Thank you for your contribution to the Vutron project.
I appreciate your contribution to the translation and would appreciate it if you could incorporate the fixes below.

README_ZH.MD -> README_zh-CN.md

Please change the file extension to lowercase and ZH to zh-CN.
I'll merge the code as you go through the process.
Thanks!


Files are shown but in 1 second they simply desappear

It works well in all my drives, but when I go to "google drive", then "my drive", I can see the files in it. But in less than 1 second, the central panel make a "refresh" and the files are gone. I see just a blank screen.
To reproduce

Go to 'google drive'
Click on 'me drive'
The files are there, but in less than 1 second the central panel makes a "refresh"
So the files are gone and I see just a blank panel (on the central panel)

Expected behavior
I expect to see the files in "my drive", just it happens in all of other drives
Logfile
debug_fulltrust.txt
debug.txt
Screenshots

System Information

I want to use Files, because is Great, but all my files are at google drive! Please help me! Thanks!

Same issue even on version 1.5

Closing this in favor of #5695 since the issue is still present on the latest beta.


PHP-FPM? How does this work/conflict with Apache?

And do I need to worry about it?

Doesn't seem to make a difference from what I can tell. Going to ignore until/if it becomes a problem.


[Macros] Move most macro definition checking into ASTGen

In preparation for supporting macros that are defined in terms of other macros, adopt macro definition checking provided by the MacroDeclSyntax.checkDefinition operation (implemented in swift-syntax). Use this in lieu of the checking on the C++ side.
This required me to finally fix an issue with the source ranges for Fix-Its, where we were replacing the leading/trailing trivia of nodes along with the node itself, even though that's incorrect: we should only replce the node itself, and there are other Fix-It kinds for replacing leading or trailing trivia.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test


Only strip slash from start of urls.

This fixes problems if for instance the get_url function returned urls without a starting /, in which case the first character of the url path was stripped. Not it only removes the character (or multiple) if it is a /.

Coverage remained the same at 85.129% when pulling 015b74dac8480cf61647447ccc457b78a496d566 on 153957:master into 007eb76d7423a48ee44529d5b662c412740b7f33 on datadesk:master.

Thanks for this patch. I didn't know about lstrip!


Documentation Updates, v0.2

Quick changes to get things updated for the v0.2 release for the intial JWST data. I updated the installation instructions, as well as the intro paragraph, and I added the ADS BibTeX entry for the arXiv preprint of the JOSS paper. Next steps (might not be before tonight/tomorrow) are to add citation info into the Meta object so users can grab the relevant citations for the components they've used.

Codecov Report

Merging #372 (9d6f91d) into main (4d763f5) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #372   +/-   ##
=======================================
  Coverage   57.75%   57.75%
=======================================
  Files          70       70
  Lines        7383     7383
=======================================
  Hits         4264     4264
  Misses       3119     3119

Impacted Files
Coverage Δ

src/eureka/version.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


reflect: TypePath part 2

Objective

Followup to #7184.
~Deprecate TypeUuid and remove its internal references.~ No longer part of this PR.
Use TypePath for the type registry, and (de)serialisation instead of std::any::type_name.
Allow accessing type path information behind proxies.

Solution

Introduce methods on TypeInfo and friends for dynamically querying type path. These methods supersede the old type_name methods.
Remove Reflect::type_name in favor of DynamicTypePath::type_path and TypeInfo::type_path_vtable.
Switch all uses of std::any::type_name in reflection, non-debugging contexts to use TypePath.

Changelog

Added TypePathVtable for dynamically accessing methods on TypePath through TypeInfo and the type registry.
Removed type_name from all TypeInfo-like structs.
Added type_path and type_path_vtable methods to all TypeInfo-like structs.
Removed Reflect::type_name in favor of DynamicTypePath::type_path and TypeInfo::type_path_vtable.
Changed the signature of all DynamicTypePath methods to return strings with a static lifetime.

Migration Guide

Rely on TypePath instead of std::any::type_name for all stability guarantees and for use in all reflection contexts.
Remove type_name from manual Reflect implementations.
Use type_path and type_path_vtable in place of type_name on TypeInfo-like structs.
Use get_with_type_path(_mut) over get_with_type_name(_mut).

Note to reviewers
I think if anything we were a little overzealous in merging #7184 and we should take that extra care here.
In my mind, this is the "point of no return" for TypePath and while I think we all agree on the design, we should carefully consider if the finer details and current implementations are actually how we want them moving forward.
For example this incorrect TypePath implementation snuck in completely under the radar.

i've stripped down this PR (TypeUuid) is no longer deprecated, in the hopes we can squeeze this in before 0.11!

failure in CI fixed by #8957.

Still some open questions and merge conflicts here, so I'm moving this to 0.12.  This becomes most relevant for the asset system and scene system, which have more focus in 0.12 anyway.

@MrGVSV, can you go through and resolve conversations that are no longer relevant? @soqb, can you rebase? I think we can get this done for 0.12, so let's get the final steps rolling.

@MrGVSV, can you go through and resolve conversations that are no longer relevant?

I think this would have to be done by the author or the PR (@soqb).

i'll get round to updating everything this week when i get a spot

@soqb @MrGVSV It looks like there's a bit of cleanup left (and merge conflicts). Do you feel like we should block on that, or just merge this and move on?

Not sure about the merge conflicts, but I believe my remaining comments are more nits than anything we should block on.


feat(tiflow): cdc and dm 6.1 use go1.19

branch equals and greater than release-6.1 use go1.19
replay with go1.19 image test link

https://ci2.pingcap.net/job/dm_ghpr_compatibility_test/8882/console

/hold
/lgtm


Fix rubocop offenses

I "discovered" some rubocop offenses. This PR fixes them.

Does this code need renaming AccessorMethodName → Style/AccessorMethodName, with a second comment below it like yours?

Yes, of course. Fixed that. I also fixed some other offenses.


ASan global-buffer-overflow src/stb_image.h:1913 in stbi__extend_receive

libsixel-global-buffer-overflow-stb_image.h-1913-stbi__extend_receive.png.zip (SHA1: 6fa73c3af3d0247b2c798a20c163d1b6331eaaef)
Tested commit: 5db717dfef6fa327cd4025e7352550f63d20699c
Credit: Henri Salo
./bin/img2sixel -o test libsixel-global-buffer-overflow-stb_image.h-1913-stbi__extend_receive.png
=================================================================
==2715==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7f58d30cdcc0 at pc 0x7f58d302a1d1 bp 0x7ffd8fe8f3f0 sp 0x7ffd8fe8f3e8
READ of size 4 at 0x7f58d30cdcc0 thread T0
    #0 0x7f58d302a1d0 in stbi__extend_receive /home/hsalo/src/libsixel/src/stb_image.h:1913
    #1 0x7f58d302a1d0 in stbi__jpeg_decode_block /home/hsalo/src/libsixel/src/stb_image.h:1968
    #2 0x7f58d306a56f in stbi__parse_entropy_coded_data /home/hsalo/src/libsixel/src/stb_image.h:2733
    #3 0x7f58d306a56f in stbi__decode_jpeg_image /home/hsalo/src/libsixel/src/stb_image.h:3132
    #4 0x7f58d306a56f in load_jpeg_image /home/hsalo/src/libsixel/src/stb_image.h:3584
    #5 0x7f58d306a56f in stbi__jpeg_load /home/hsalo/src/libsixel/src/stb_image.h:3741
    #6 0x7f58d306a56f in stbi__load_main /home/hsalo/src/libsixel/src/stb_image.h:980
    #7 0x7f58d307e35c in stbi__load_and_postprocess_8bit /home/hsalo/src/libsixel/src/stb_image.h:1090
    #8 0x7f58d3082663 in load_with_builtin /home/hsalo/src/libsixel/src/loader.c:882
    #9 0x7f58d308f7f8 in sixel_helper_load_image_file /home/hsalo/src/libsixel/src/loader.c:1352
    #10 0x7f58d30b07de in sixel_encoder_encode /home/hsalo/src/libsixel/src/encoder.c:1734
    #11 0x564de83eebab in main /home/hsalo/src/libsixel/converters/img2sixel.c:457
    #12 0x7f58d22372e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
    #13 0x564de83eede9 in _start (/home/hsalo/builds/libsixel/5db717dfef6fa327cd4025e7352550f63d20699c/bin/img2sixel+0x2de9)

0x7f58d30cdcc0 is located 32 bytes to the left of global variable 'stbi__bmask' defined in 'stb_image.h:1844:27' (0x7f58d30cdce0) of size 68
0x7f58d30cdcc0 is located 0 bytes to the right of global variable 'stbi__jbias' defined in 'stb_image.h:1897:18' (0x7f58d30cdc80) of size 64
SUMMARY: AddressSanitizer: global-buffer-overflow /home/hsalo/src/libsixel/src/stb_image.h:1913 in stbi__extend_receive
Shadow bytes around the buggy address:
  0x0feb9a611b40: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
  0x0feb9a611b50: 00 00 00 00 f9 f9 f9 f9 00 00 00 00 00 00 00 00
  0x0feb9a611b60: 00 00 00 00 00 00 00 04 f9 f9 f9 f9 00 00 00 00
  0x0feb9a611b70: 00 00 00 00 00 00 00 00 00 00 00 04 f9 f9 f9 f9
  0x0feb9a611b80: 00 00 00 00 00 00 00 00 00 07 f9 f9 f9 f9 f9 f9
=>0x0feb9a611b90: 00 00 00 00 00 00 00 00[f9]f9 f9 f9 00 00 00 00
  0x0feb9a611ba0: 00 00 00 00 04 f9 f9 f9 f9 f9 f9 f9 00 00 00 00
  0x0feb9a611bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0feb9a611bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0feb9a611bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0feb9a611be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Heap right redzone:      fb
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack partial redzone:   f4
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==2715==ABORTING

@fgeek thank you!


Feature/add textarea

You can check this feature at https://johannchopin.github.io/clean-css/. Tell me what do you think of it.
Closes #1164.

Hey @johannchopin - this looks good to me. One nitpick - can we add some spacing below "optimize ->" button and left align it the same as button is?

@jakubpawlowicz Oh I see the layout in firefox is broken. In chrome and safari it looks like the following:

Will fix that if you are ok with this design 👍

Yup, it's good, thanks!

All good, thanks again @johannchopin :100:


How to stop Instant verification in phone number verfication

The phone authentication in firebase has two types of users on successful authentication as provided in the documentation:
Instant verification: in some cases the phone number can be instantly verified without needing to send or enter a verification code.
Auto-retrieval: on some devices, Google Play services can automatically detect the incoming verification SMS and perform verification without user action.
I would like to authenticate the users on the basis of sending SMS instead. So how could it be resolved. I would like to stop instant verification as well as auto retrieval and call the onCodeSent callback each time
Any help would be appreciated.

@chitrey we don't currently have a way to disable the instant verification or auto retrieval.  Both of those are based on SMS though, can you explain why you'd want to turn them off?  In our user studies they greatly increase sign up conversion rate.

Closing this issue as we are not planning to allow disabling this feature for now.

@samtstern A good reason to allow disabling this feature is for debugging. I cannot recreate the call for "onCodeSent" anymore because of the Instant Verification, which makes it impossible for me to debug my "Enter your verification code" screen anymore. I tried uninstalling the app / removing its data and nothing helps. At least for debugging purposes, we have to have this option. Am I missing something here?

@Barackos that's a good point.  I'll make sure to add that to the feature request internally.  One workaround is to use two devices.  One one device (with no SIM) enter the phone number of the other device (with a SIM).  Then you'll get the code flow.

Please make a way to disable instant verification, its a pain while debugging.
p.s. I wasted last 2 hours thinking i messed up my perfectly working program :(
Thank you for this thread, or i would've gone mad thinking it was my fault.

After verifying the code
PhoneAuthProvider.getCredential(verificationId,code);
onVerificationCompleted is never called. Why?

onVerificationCompleted is only called when instant verification or auto-retrieval occurs.

I'm interested in disabling instant verification for this reason: https://stackoverflow.com/q/45356169/3889068

Looks like @isaisachen replied on StackOverflow.

You can go to settings and disable you sim card. Enable it again and you should start getting verification codes. Though for instant verification I have not come across any way to disable that.

@Jitesh291 I'm confused. "disable your sim card... start getting verification codes" - so I assume it worked for you and you no longer got instant verification? And then what does your last sentence mean? You mean SMS auto-retrieval?

Thing is when you try this for the first time you will get the otp code
from Google but the next time you try it, it can cause instant verification
to get active. So if you are debugging and having problem with not
receiving otp code from google just disable your sim card and enable it
again. This will help you in getting the otp codes from google again for
one more time until you enter your code and instant verification gets
activated again.
Please note: I don't think there is any way you can disable instant
verification as of now. But you can always optimize your code in a way it
doesn't create any problem for you and your users.
On Oct 24, 2017 10:57 AM, "isaisachen"<EMAIL_ADDRESS>wrote:

@Jitesh291 https://github.com/jitesh291 I'm confused. "disable your sim
card... start getting verification codes" - so I assume it worked for you
and you no longer got instant verification? And then what does your last
sentence mean? You mean SMS auto-retrieval?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/firebase/quickstart-android/issues/296#issuecomment-338878013,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AfhJFra51xd6sXDx7UHeYK7IXJPkdCfBks5svXVcgaJpZM4OKC0k
.

Having the same problem, making it hard to debug the input screen. +1 for the feature request.

I tried to pass 0 to timeout parameter in verifyPhoneNumber
docs says:
the maximum amount of time you are willing to wait for SMS auto-retrieval to be completed by the library. Maximum allowed value is 2 minutes. Use 0 to disable SMS-auto-retrieval. If you specifies a positive value less than 30 seconds, library will default to 30 seconds.
i've done that but nothing happened

Same happens with me what Omar-ahmed mentions.
Passing 0 still the onCodeAutoRetrievalTimeOut gets called after 30 sec. Is this intended? I know I can do workaround to check if there is SIM available and then do call onCodeAutoRetrievalTimeOut manually. But this seems a bit hacky for me.

same is the case with me I tried to use 2 mobile phones by putting 1st mobile phone number in 2nd phone(where I am testing app) I get the code in 1st mobile I put it for verification but it is giving error of "invalid code"
PS: I am putting right code (tried many times)

onVerificationCompleted is only called when instant verification or auto-retrieval occurs.

onVerificationCompleted is only called when instant verification or auto-retrieval occurs.

yes its getting call automatically after instant verification but,its not verify the number correctly
please look at this link i have explained the problem in detail,please have a look.

Please make a way to disable instant verification, its a pain while debugging.
p.s. I wasted last 2 hours thinking i messed up my perfectly working program :(
Thank you for this thread, or i would've gone mad thinking it was my fault.

I messed up my last 2 days at this! Refactored my whole code so that's a plus.

i got 3 days to face this probelm.. hahaha

Spent the whole day finding the cause for this and certainly a very annoying thing if you're debugging. There should be a way to disable this!
@Jitesh291 's solution worked for me.
Settings -> Sim and Network -> Sim (1 or 2) -> Disable  it.
Open the app and now try, auto verification shouldn't happen.

Can you tell me how to enable this feature to me? I have Samsung Galaxy S8 with Android 8. Here I cannot test this feature on my device. What should I do to enable this on my device because I would like to test how this works with my code?

This is a cool feature, but many users are concerned and confused when they experience it. They do not realize the verification was a success, and they see the experience as insecure. This should be something that we can disable.

Can you tell me how to enable this feature to me? I have Samsung Galaxy S8 with Android 8. Here I cannot test this feature on my device. What should I do to enable this on my device because I would like to test how this works with my code?

This is automatically done by Firebase. You need to enable "Phone Sign In" and your package name should match. Add debugging SHA1 key as well and you should start receiving the codes. And as everyone has already mentioned, we cannot disable the auto verification process. Sadness

@chitrey You: Instant verification: in some cases the phone number can be instantly verified without needing to send or enter a verification code.
Me: How can I enable this? I can use normal Phone Auth and it always asks verification code. i.e. no instant verification.

I found out this instant verification is dangerous.
Even when your SIM number is different with the number you use to login. You still get instant verification. Why don't you guys at least disable instant verification if the number is different with current device SIM number ?
or at least , give us developer disable feature

I guess there should be a way to disable it at least , me basically i prefer to receive the sms and verify it from the user side as well , then authenticate him

Hahaha, its been 4 years and we still don't have a workaround for this issue!

I am absolutely astonished at the sheer incompetence and negligence of the Firebase Team. You ALSO have an issue - (https://github.com/firebase/firebase-android-sdk/issues/2688) where if the app name on the Play Store/App Store is longer than 15 characters, then the auto-verification doesn't even work!
So now, if I want to disable your near-useless auto-verification and let the user immediately enter the SMS Code, I can't do that either - I have to make my users wait for goddamn timeout of 30 seconds for no reason?

@Barackos that's a good point. I'll make sure to add that to the feature request internally. One workaround is to use two devices. One one device (with no SIM) enter the phone number of the other device (with a SIM). Then you'll get the code flow.

whats the status of this?

Any update? 🙏

All hail firebase, when we can't test the code in debug not sure how to proceed for production.

I found out this instant verification is dangerous. Even when your SIM number is different with the number you use to login. You still get instant verification. Why don't you guys at least disable instant verification if the number is different with current device SIM number ?
or at least , give us developer disable feature

This happens to me too.
I have iPhone with Sim A, that I use to login to my app on Android Phone with No Sim.
I get the OTP on ios and instant verification happens on the android.
I don't understand how can this happen? This seems very risky.

This has been a request for over 5 years now, any updates on this?

There should be a way to turn this off. As others have mentioned, there are some clear security risks and I don't really see it as a beneficial UX experience.

This instant verification thing, without opt-out, is one of the worst features indeed.

لاتعليق 🙃

any news? this feature broke my flow and I have no idea how to disable auto-retrieval on android...

any updates on this one?

any update please !!!!!!!!!!!!
why are you not responding?

any update please !!!!!!!!!!!!
why are you not responding?

They have already closed this stating they are not planning on implementing this feature anytime soon. I don't think there is anything we can do.

Hi Firebase Team. This is your occasional reminder of how badly you've sh** the bed with your phone auth feature.

I would like to request the ability to disable this feature. This is unintuitive for users and would require tremendous extra effort for us to handle this other way of authenticating users.
We need to have all our users just receive the auth code via SMS without instant verification.

hey @mesqueeb, I'm using react-native-firebase and I have patched the setTimeoutto be 0, this way the auto verification does not kick in.
from docs:
val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(phoneNumber) // Phone number to verify
    .setTimeout(0, TimeUnit.SECONDS) // Timeout and unit <----- SET THIS TO 0 FROM 60L
    .setActivity(this) // Activity (for callback binding)
    .setCallbacks(callbacks) // OnVerificationStateChangedCallbacks
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)

@samtstern It looks like there was a change in the last two weeks in the latest OS updates on Android that is causing over 50% of sessions to auto-verify. This is a BREAKING CHANGE to existing apps, causing developers to have to patch this as a live issue now. Can we PLEASE get a way to turn this off?


APM Integration test failure

Test method
tests.agent.test_java.test_concurrent_req_java_spring
Test logs
https://apm-ci.elastic.co/job/apm-integration-tests/job/master/974/testReport/junit/tests.agent/test_java/Integration_Tests___All___test_concurrent_req_java_spring/
Additional context
This is causing a failure in the master branch of the APM Integration tests which are shared across multiple projects.

Hi @jalvz . It looks like this might have been a test that you wrote originally. In speaking with @SylvainJuge they're not quite sure where to go with this and I was wondering if you could help figure out the best strategy for resolving this.

Seems to have been fixed.


Allow immediate invokation for Observer:onChange()

Oftentimes the same function will be used for initialising an observer and updating it in response to a change:
local theValue = Value(5)

local function updateFoo()
    foo.Color = theValue:get()
end

updateFoo()
Observer(theValue):onChange(updateFoo)

Sometimes this may not be expressed explicitly:
local theValue = Value(5)

foo.Color = theValue:get()
Observer(theValue):onChange(function()
    foo.Color = theValue:get()
end)

To reduce code duplication and the potential for errors, we could introduce a shorthand which immediately invokes the callback function in a spawned thread:
local theValue = Value(5)

Observer(theValue):onBind(function()
    foo.Color = theValue:get()
end)

I have a wrapper function for just this, and I basically use it in 99% of my Observer uses, so it'd be really nice addition!

This can be closed due to the above being merged!


Unable to parse function with multiple expression values

The following parses correctly:

select foo(a.b);
select foo(a.b, 5);

The following does not parse:

select foo(a.b, a.x);

Should this work? Any help appreciated. Thanks!

I guess it should work. Seems like a bug.
Tobias
-------- Ursprüngliche Nachricht --------
Von: riteshtijoriwala<EMAIL_ADDRESS>Datum: 27.08.2017  00:13  (GMT+01:00)
An: JSQLParser/JSqlParser<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Betreff: [JSQLParser/JSqlParser] Unable to parse function with multiple
expression values (#503)
The following parses correctly:
select foo(a.b);
select foo(a.b, 5);
The following does not parse:
select foo(a.b, a.x);
Should this work? Any help appreciated. Thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/JSQLParser/JSqlParser","title":"JSQLParser/JSqlParser","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/JSQLParser/JSqlParser"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Unable to parse function with multiple expression values (#503)"}],"action":{"name":"View Issue","url":"https://github.com/JSQLParser/JSqlParser/issues/503"}}}

Any suggestions on fixing it? I am just starting to browse the codebase.

This also doesn't seem to work:

select foo(a.b, bar(x.y)) as X

@riteshtijoriwala set the debug mode on (so you can view what token the grammar is trying to tie it to). Maybe there's a rule for a.x that isn't 0 or many

Thank you @AnEmortalKid , @wumpz . There was some issue in escaping the input SQL string. The mentioned use cases work perfectly now!

So I will close this. ...


Observe reconnecting state

I have connected bluetooth device then simulated a case that bluetooth device is far away or missing. I could catch event that disconnected. When the device is in range and reconnected I didn't receive anything. Though I have used observeConnect() function.
Please help me out.
private func obserConnect(for peripheral: Peripheral){
    centralManager.observeConnect(for: peripheral).subscribe(onNext: { [unowned self] (peripheral) in
        self.connectionSubject.onNext(Result.success(peripheral))
        }, onError: { [unowned self] error in
            self.connectionSubject.onNext(Result.error(error))
    }).disposed(by: disposeBag)
    centralManager.observeConnect().subscribe(onNext: { (per) in
        print("centralManager.observeConnect() " + (per.name ?? ""))
    }, onError: { (err) in
        print("centralManager.observeConnect() " + err.localizedDescription)
    }).disposed(by: disposeBag)
}

  func discoverServices(for peripheral: Peripheral) {
    let isConnected = peripheral.isConnected

    let connectedObservableCreator = { return peripheral.discoverServices(nil).asObservable() }
    let connectObservableCreator = {
        return peripheral.establishConnection()
            .do(onNext: { [weak self] _ in
                self?.observeDisconnect(for: peripheral)
                self?.obserConnect(for: peripheral)
            })
            .flatMap { $0.discoverServices(nil) }
    }
    let observable = isConnected ? connectedObservableCreator(): connectObservableCreator()
    let disposable = observable.subscribe(onNext: { [weak self] services in
                self?.discoveredServicesSubject.onNext(Result.success(services))
            }, onError: { [weak self] error in
                self?.discoveredServicesSubject.onNext(Result.error(error))
            })

    if isConnected {
        disposeBag.insert(disposable)
    } else {
        peripheralConnections[peripheral] = disposable
    }
}

I have the same issue

i have same issue also ?!!
any updated ?!!


strings in the query-suggestions and recent-searches plugins cannot be translated without replacing entire template

Description
While autocomplete-js allows for the submit/clear button strings to be localized externally, there are strings in the query-suggestions and recent-searches plugins that cannot be localized.
recent-searches

Remove this search
Fill query with "${item.label}"

query-suggestions

Fill query with "${item.query}"

Reproduction
There's not really a way to reproduce this cleanly since it is a gap in the API of these plugins.
Expected behavior
Plugins should allow for localized strings to be provided.
Environment

OS: any
Browser: any
Autocomplete version: latest

That's a good point. Would you be willing to add a translations option as is the case for core? It was originally introduced in https://github.com/algolia/autocomplete/pull/581 for reference

Would you be willing to add a translations option as is the case for core?

Sure. Would you prefer one PR for both plugins or a separate PR per plugin?


Refactor main.rs

Don't panic when parsing options. Instead list valid values and exit.
Get rid of needless .expect in playback/src/audio_backend/mod.rs.
Enforce reasonable ranges for option values (breaking).
Don't evaluate options that would otherwise have no effect.
Add pub const MIXERS to mixer/mod.rs very similar to the audio_backend's implementation. (non-breaking though)
Use different option descriptions and error messages based on what backends are enabled at build time.
Add a -q, --quiet option that changed the logging level to warn.
Add a short name for every flag and option.
Note removed options.
Other misc cleanups.

Just let me know when you’re ready.

Just let me know when you’re ready.

I'm ready for your review I think? Everything functions as intended. It's just a matter of if there's anything you like changed?

Squashed and ready for another round of reviews...

@roderickvd There I've made mixer::find function like audio_backend::find except I didn't change the name arg type. It's still Option<&str> to prevent API breakage.

Nice work man. You have now officially reached "Large diffs are not rendered by default" status on GitHub 😆
I'll take a better look at it the coming few days!

Nice work man. You have now officially reached "Large diffs are not rendered by default" status on GitHub
I'll take a better look at it the coming few days!

I was there a couple days ago,lol!!! It looks like a lot and it kinda is but it's also really not. It's mostly polish.

It looks like a lot and it kinda is but it's also really not. It's mostly polish.

Heh... and still this will be a tough one for me to merge: most of my customizations are in main.rs: I've added a few params, removed some others. Exactly the area you changed so much here 😀.

Heh... and still this will be a tough one for me to merge: most of my customizations are in main.rs: I've added a few params, removed some others. Exactly the area you changed so much here .

That would be expected.  Main is really just glue code that helps hold all the librespot libs together. If you want to maintain a divergent fork of the librespot binary you'd be expected to maintain your own patches/changes. Make your own glue so to speak. It would probably be more maintainable in the long run to write your own application that just uses the librespot libs.

I also noticed that you're using the basic normalization mode. The basic mode will be deprecated in the near future. If the dynamic doesn't work for you for whatever reason you might want to file a bug/figure out why or basic mode will be another patch you'll need to carry.

That would be expected. Main is really just glue code that helps hold all the librespot libs together. If you want to maintain a divergent fork of the librespot binary you'd be expected to maintain your own patches/changes. Make your own glue so to speak. It would probably be more maintainable in the long run to write your own application that just uses the librespot libs.

I thought you might suggest this. And I actually did this. But it proved to be harder for me (as a not fluent in Rust developer) to pick the relevant changes from librespot to translate them to whatever I would need. Dealing with conflicts in the params part I can handle.
Thanks for the hint about the normalization mode. I'll go with whatever is the default behavior. I don't really care about it, as I personally don't use it 😀.

I thought you might suggest this. And I actually did this. But it proved to be harder for me (as a not fluent in Rust developer) to pick the relevant changes from librespot to translate them to whatever I would need. Dealing with conflicts in the params part I can handle.

For now maybe. Eventually as librespot moves forward and drifts away from your fork you're going to have problems. Especially with the rate that development has increased in librespot recently. Your fork is already +26/-57 commits. That gap is only going to get wider. If I were you I'd pull the librespot bits in as dependencies like what spotifyd does and keep just the glue code like main.

My dev branch is "only" +33/-2: https://github.com/michaelherger/librespot/tree/spotty-dev. Most changes usually are straight forward merges. As would be the missing 2. I'm waiting for this PR to be merged before I sync up again.
I've done the switch from using my own implementation pulling in librespot as dependencies to using a fork before. The way back shouldn't be harder. And until now keeping my fork up to date has been much easier than keeping a standalone version in sync. Because most of the changes usually merge easily. Conflicting wording in a description even I can handle.
As I said: I'm not complaining at all. I only was kind of joking about how a seemingly simple cleanup of runtime options descriptions messed with my customizing this particular part of the code.

@michaelherger I did a compare of your spotty dev branch to your master and the only differences are Logitech Media Server specific changes. You haven't change any of the core librespot stuff at all that I saw. You are absolutely wasting your time and effort maintaining a librespot fork with a divergent branch. A lot of it could just be added to the wiki and the contrib section of this repo and/or (I know I keep saying this,lol!!!) you could just maintain the handful of files that are changed/new and pull librespot in as a lib.

You just keep on pushing and pushing 😆 again let me know when you're ready for review.

You just keep on pushing and pushing 😆 again let me know when you're ready for review.

Just tweaking. I'll stop. Jump in there and give me your worst,lol!!!

@roderickvd I have a couple questions/ideas?

librespot defaults to the info log level which is fine and all but a little bit spammy if you're running it as service. It generates A LOT of logs for basically no reason. It would be nice to have a -q, --quiet option that changed the logging level to warn to generate basically no logs unless there are actual problems.

It would also be really nice if every option/flag had a short version. Most currently do not. With all the current options and flags an arg string can get pretty crazy long pretty quick and some of the options have really long names. Mine for example is 345 chars long start to finish granted I tweak just about everything but still.

On an unrelated note I just update to the latest version of Raspberry Pi OS (lite) that's based on Debian Bullseye and everything seem to work perfectly.

librespot defaults to the info log level which is fine and all but a little bit spammy if you're running it as service. It generates A LOT of logs for basically no reason. It would be nice to have a -q, --quiet option that changed the logging level to warn to generate basically no logs unless there are actual problems.

Principally sounds good to me. Could howver already be done by piping to /dev/null.

It would also be really nice if every option/flag had a short version. Most currently do not. With all the current options and flags an arg string can get pretty crazy long pretty quick and some of the options have really long names. Mine for example is 345 chars long start to finish granted I tweak just about everything but still.

Fine by me.

Principally sounds good to me. Could howver already be done by piping to /dev/null.

That's not really something you'd do with a system service unless it was spamming your logs... cough, cough... like librespot does... librespot 's logging is crazy verbose by default. Most apps default to warning level and only go to info in verbose mode and go to trace/debug level in debug mode.

Fine by me.

Ok. We have so many options we almost run though the English alphabet lower case and upper case since short names in getopts can only be 1 char. It starts to get pretty arbitrary real quick as far as the short name not having any connection to the long name.

Ok @roderickvd I'm ready for a new round. I have deleted my local clones so I can't fiddle with  it :laughing: so I won't push anything else unless you'd like changes made.

It's a bit hard for me to see what the changes are between your latest commit and my previous review, and GitHub isn't helping. Do you have a link to a diff between the two?
I think it's easiest to save force-pushing for those occasions where a commit was in error, or after squashing just before merging.

It's a bit hard for me to see what the changes are between your latest commit and my previous review, and GitHub isn't helping. Do you have a link to a diff between the two?

No you'll have to either trust me or re-review it.

I think it's easiest to save force-pushing for those occasions where a commit was in error, or after squashing just before merging.

I squashed and force pushed to keep the history clean. If you look at my previous merged PR's there's a lot of noise in there. Github's squash button keeps all that noise. You have to do it by hand to clean out the noise.
From now on I will wait to squash until right before you're ready to merge.

I was made a maintainer of Raspotify. Waiting on you to review and merge this @roderickvd so I can include the --quiet  and the non-explodey arg parsing fails for the sweaty masses,lol!!!

Happy day. CI passed!!!

Great work man 🍻

Thanks. Now the plan is to do a release of Raspotify that tracks dev and then we can use Raspotify users to shake out bugs and every so often I'll do future release of Raspotify as snapshots of dev. So in effect Raspotify will be a rolling unstable-ish librespot. I'll try to filter the noise from Raspotify. I'm not really interested in debugging someone's network issues or really dealing with docker containers and all that. I'm just looking for real bugs.

If we ever get to the point of separating librespot as a library and librespotd as the Connect daemon, then we should look at https://github.com/clap-rs/clap.
Note that it's not at all high on my list, so this is just for future reference.

If we ever get to the point of separating librespot as a library and librespotd as the Connect daemon, then we should look at https://github.com/clap-rs/clap.
Note that it's not at all high on my list, so this is just for future reference.

I'd personally like a proper config file parser. So you could just so librespot --config-file /foo/bar.

At this point really librespot and librespotd are starting to look like the same thing. As in librespot is currently able to be a 'd' as evidenced by Raspotify which is literally just an unaltered librespot binary, a systemd unit file and an environment file.


[camera] Orientation is not sync with real devices' orientation while around multiple of 45 degrees

TL;DR the orientation from the CameraValue is not synced with the device when the orientate angle reaches 45 degrees, the camera preview is rotating while the device's orientation hasn't changed yet.
https://user-images.githubusercontent.com/15884415/111867420-bc377d00-89ae-11eb-9bcd-8cf6f59891b4.mp4
With more advance usage, this issue will cause scale issue when these orientation are not sync. The following video is the example from wechat_camera_picker.
https://user-images.githubusercontent.com/15884415/111867518-7202cb80-89af-11eb-8e3a-e977ffa37023.mp4
Steps to Reproduce

Run camera's example.
Enable device auto orientation.
Rotate the device around multiple of 45 degrees.

Expected results: The orientation should sync with the device.
Actual results: Preview is rotated around multiple of 45 degrees.
camera package version: 0.8.0
flutter version: 2.0.3

By searching "45" keyword in the plugin, shows a custom implementation with 45. https://github.com/flutter/plugins/search?q=45
cc @BeMacized

Verified using camera plugin's example and noticed the experience isn't same as that of other example mentioned above.

flutter doctor -v
[✓] Flutter (Channel master, 2.1.0-13.0.pre.194, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-GB)
    • Flutter version 2.1.0-13.0.pre.194 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision e58ee0fbc7 (5 hours ago), 2021-03-22 13:06:06 +0800
    • Engine revision e6db3a275e
    • Dart version 2.13.0 (build 2.13.0-149.0.dev)

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.18.1

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 89.0.4389.90

! Doctor found issues in 1 category.

IMO the camera preview should not rotate according to the device's orientation. None of system's cameras will act like that, the real orientation that the photo/video has taken should be stored instead. So the important thing is make the camera preview not rotated.
After tried with some implementation, There are no way to match orientations manually by now, because:

Flutter use Orientation and camera use DeviceOrientation. Orientation only have portrait and landscape.
The preview widget is rotating.

One more thing about the device orientation. Most of native apps take a rotated photo without unlock the system's orientation lock, and the orientation is still valid. Currently camera hasn't matched the behavior yet.

Took a quick look at this. The fact that the preview rotates to a different orientation than the current UI orientation, does indeed seem like unwanted behaviour.
I do think we still need to keep rotating the preview so that it is still rotated correctly when the UI orientation changes, but relative to the UI orientation rather than the device orientation.
As you noticed Orientation doesn't allow users to differentiate between left vs right landscape mode, or regular portrait vs upside-down portrait, which makes this a bit more difficult. This was a major reason for me to add the custom device orientation implementation.
I'd propose adding functionality to read UI orientation, similar to how checking device orientation is currently implemented, so the preview widget can use that instead.
I did however see that a rather large refactor for the android side is happening in flutter/plugins#3651, which I'd prefer to land before making any changes of this sort. It's currently unclear to me how far off it is from being merged, so for now I'm going to hold off on building a fix.

Sure. Again the captured image/video's orientation may have to split out from the UI orientation, and not related to the device orientation's lock.

I'm experiencing the same issue, my UI and camera orientation are not synchronized.

Hi everyone,
Was facing this issue for the last few days. By reading documentation & example project code carefully I found these functions very useful:
CameraController.lockCaptureOrientation
CameraController.unlockCaptureOrientation
Locking the capture orientation did trick for me.
@AlexV525 @marchelo

CameraController.lockCaptureOrientation

😆 Haha. How could I take a landscape photo with orientation locked in portrait?

Several orientation related issues have been fixed in flutter/plugins#4059, including the preview rotating "too soon".
I'll be closing this issue as I expect these fixes to have solved the problem.
If anyone is still running into issues regarding orientation using the new release, feel free to open a new issue, or post a message here so we may reopen this one.


how to get cookies ?

hello,
I'm struggling on getting cookies from the page. I've seen on how rod sets the cookie using *rod.Page and see this doc; but I cant manage to pull all the cookie from given url.
Here's the snippet:
func RodGetCookies(p *rod.Page, urls []string) {
	result := p.Call("Network.getCookies", cdp.Object{
		"urls": urls,
	})

	fmt.Printf("%+v", result)
}

...
    page, err := browser.PageE("https://github.com")
	if err != nil {
		panic(err)
	}

	RodGetCookies(page, []string{"*.github.com"})
...

the output:
{"cookies":[]}

thank you

@ysmood thank you for the suggestion :)
I already try that actually, and got error like this:
panic: [rod] DOMException: Failed to read the 'cookie' property from 'Document': Access is denied for this document.
    at <anonymous>:1:32
{"result":{"type":"object","subtype":"error","className":"DOMException","description":"DOMException: Failed to read the 'cookie' property from 'Document': Access is denied for this document.\n    at <anonymous>:1:32","objectId":"{\"injectedScriptId\":1,\"id\":3}","preview":{"type":"object","subtype":"error","description":"DOMException: Failed to read the 'cookie' property from 'Document': Access is denied for this document.\n    at <anonymous>:1:32","overflow":false,"properties":[{"name":"stack","type":"accessor"},{"name":"code","type":"number","value":"18"},{"name":"name","type":"string","value":"SecurityError"},{"name":"message","type":"string","value":"Failed to read the 'cookie' property from 'Document': Access is denied for this document."}]}},"exceptionDetails":{"exceptionId":1,"text":"Uncaught","lineNumber":0,"columnNumber":31,"scriptId":"22","exception":{"type":"object","subtype":"error","className":"DOMException","description":"DOMException: Failed to read the 'cookie' property from 'Document': Access is denied for this document.\n    at <anonymous>:1:32","objectId":"{\"injectedScriptId\":1,\"id\":4}","preview":{"type":"object","subtype":"error","description":"DOMException: Failed to read the 'cookie' property from 'Document': Access is denied for this document.\n    at <anonymous>:1:32","overflow":false,"properties":[{"name":"stack","type":"accessor"},{"name":"code","type":"number","value":"18"},{"name":"name","type":"string","value":"SecurityError"},{"name":"message","type":"string","value":"Failed to read the 'cookie' property from 'Document': Access is denied for this document."}]}}}}

goroutine 1 [running]:
github.com/ysmood/kit/pkg/utils.E(0xc0001d2af0, 0x1, 0x1, 0x0, 0xe24b75, 0xf)
        /home/widnyana/.gvm/pkgsets/go1.13.5/global/pkg/mod/github.com/ysmood/kit@v0.22.2/pkg/utils/utils.go:33 +0xab
github.com/ysmood/rod.(*Page).Eval(0xc000172000, 0xe24b75, 0xf, 0x0, 0x0, 0x0, 0x1)
        /home/widnyana/.gvm/pkgsets/go1.13.5/global/pkg/mod/github.com/ysmood/rod@v0.25.7/sugar.go:232 +0xf8

long story short, I can make my snippet above works by adding code below before calling RodGetCookies
el := page.WaitLoad().Element("#topsection > div > h1")
elStable := meh.WaitStable().WaitVisible()  // <-- this one
fmt.Println(elStable.Text())

closing this issue, and again thank you for creating this library, cheers! :beers:

Released v0.27.3, now you have Cookies to get the cookies directly:
https://github.com/ysmood/rod/blob/52fc1e08901b8ad7a11856c6bb888c67bc870b76/page_test.go#L33

thank you @ysmood !


Apple Notes Importer doesn't import anything

I installed the Importer plugin today to try to import my apple notes, however nothing is imported and there is a console error (although no user-visible error):

Here's the full error:
Uncaught (in promise) Error: Error: mode should be one of: ascii column csv html insert line list quote tabs tcl

    at Socket.h (plugin:obsidian-importer:71:260)
    at Object.onceWrapper (node:events:628:26)
    at Socket.emit (node:events:513:28)
    at addChunk (node:internal/streams/readable:324:12)
    at readableAddChunk (node:internal/streams/readable:297:9)
    at Readable.push (node:internal/streams/readable:234:10)
    at Pipe.onStreamRead (node:internal/stream_base_commons:190:23)
h @ plugin:obsidian-importer:71
onceWrapper @ node:events:628
emit @ node:events:513
addChunk @ node:internal/streams/readable:324
readableAddChunk @ node:internal/streams/readable:297
Readable.push @ node:internal/streams/readable:234
onStreamRead @ node:internal/stream_base_commons:190

And here's my debug info:
SYSTEM INFO:
Obsidian version: v1.4.16
Installer version: v1.4.13
Operating system: Darwin Kernel Version 20.6.0: Thu Jul  6 22:12:47 PDT 2023; root:xnu-7<IP_ADDRESS>2.12~1/RELEASE_X86_64 20.6.0
Login status: logged in
Catalyst license: supporter
Insider build toggle: off
Live preview: on
Legacy editor: off
Base theme: dark
Community theme: none
Snippets enabled: 0
Restricted mode: off
Plugins installed: 1
Plugins enabled: 1
1: Importer v1.5.3
Note: this is on a fresh vault with nothing done except installing the importer plugin.

It appears that this is since you are on an older unsupported version of macOS which bundles an older version of SQLite, while the sqlite-tag-spawned library which the plugin depends on requires a newer version.
Idk whether the Obsidian team supports unsupported versions of macOS, especially as some of the libraries they rely on aren’t supported much further back than this. If they do choose to add compatibility it shouldn’t be too hard to add a fallback for older OS versions though, seems like a relatively easy tweak, and we already bundle this library and modify it.

Same for me on current OS:
The strange thing, I tried 5 times in my regular vault with plugins enabled, and each import was blank. Tried the sandbox vault and it worked, then went back to mine without closing or reloading or anything and it started working. Below are my logs if it helps:

SYSTEM INFO:
Obsidian version: v1.4.16
Installer version: v1.4.16
Operating system: Darwin Kernel Version 23.1.0: Mon Oct  9 21:28:31 PDT 2023; root:xnu-10002.41.9~6/RELEASE_ARM64_T8112 23.1.0
Login status: not logged in
Insider build toggle: off
Live preview: on
Legacy editor: off
Base theme: dark
Community theme: Minimal v7.3.4
Snippets enabled: 0
Restricted mode: off
Plugins installed: 15
Plugins enabled: 15
1: Advanced Tables v0.19.1
2: Calendar v1.5.10
3: Dataview v0.5.63
4: Editor Syntax Highlight v0.1.3
5: Find orphaned files and broken links v1.9.1
6: Homepage v3.6.0
7: Obsidian42 - BRAT v0.7.0
8: Quick Switcher++ v3.3.8
9: QuickAdd v1.4.0
10: Templater v1.16.4
11: Datacore v0.1.2
12: Importer v1.5.3
13: Minimal Theme Settings v7.3.0
14: Plugin Update Tracker v1.5.2
15: Archiver v0.26.1

This appears to be a separate issue. It seems the static-params dependency wasn't upgraded to 0.4 for the build of the latest version, even though the requirements were changed. Hence it fails when Import recently deleted notes is checked. I have checked the minified code and the respective changes in 0.4 haven't been incorporated.

Fixed in 1.5.4

@kepano in case you weren't aware, this only fixes wdfry's problem, not the initial problem reported by axelson. Although the symptoms are the same the cause is different (the initial problem being from using an unsupported version of macOS).

Ah, issues caused by an older version makes sense (although unfortunately this is the latest OS that this macbook air supports).
Although it would be nice if there was a graphical error message shown, that would help user's know that an error has occurred.

I've opened a pull request with support for older versions in #163. Though if the Obsidian team chooses not to implement this then a message is a good idea. Keep in mind they are busy (and have already spent quite a bit of time going over my contributions so far) so this may take a while to make it into a release.

Awesome, thank you so much!

Closed via 1.5.5


Catch errors thrown by "decodeURIComponent"

Catch errors thrown by "decodeURIComponent"
Negate state condition check for better readability.

Any tests you can add for the new error cases?

done

Codecov Report

Merging #6226 (b67f3f6) into dev (81d34b4) will decrease coverage by 1.48%.
The diff coverage is 75.57%.

Flag
Coverage Δ

msal-angular
96.73% <96.63%> (+0.22%)
:arrow_up:

msal-browser
86.17% <ø> (-0.30%)
:arrow_down:

msal-common
83.24% <ø> (-1.31%)
:arrow_down:

msal-core
?

msal-node
79.74% <ø> (-3.65%)
:arrow_down:

msal-node-extensions
69.29% <60.12%> (-6.35%)
:arrow_down:

msal-react
94.24% <ø> (-0.45%)
:arrow_down:

node-token-validation
?

Impacted Files
Coverage Δ

...ions/msal-node-extensions/src/utils/Environment.ts
20.51% <0.00%> (-22.08%)
:arrow_down:

...b/msal-browser/src/app/IPublicClientApplication.ts
43.75% <ø> (ø)

...ib/msal-browser/src/app/PublicClientApplication.ts
73.80% <ø> (-21.52%)
:arrow_down:

...er/src/broker/nativeBroker/NativeMessageHandler.ts
86.29% <ø> (+0.33%)
:arrow_up:

lib/msal-browser/src/cache/AsyncMemoryStorage.ts
80.76% <ø> (+2.99%)
:arrow_up:

lib/msal-browser/src/cache/BrowserCacheManager.ts
90.18% <ø> (-1.54%)
:arrow_down:

lib/msal-browser/src/cache/BrowserStorage.ts
87.50% <ø> (-3.41%)
:arrow_down:

lib/msal-browser/src/cache/CryptoKeyStore.ts
80.00% <ø> (-3.34%)
:arrow_down:

lib/msal-browser/src/cache/DatabaseStorage.ts
34.00% <ø> (-4.54%)
:arrow_down:

lib/msal-browser/src/cache/MemoryStorage.ts
100.00% <ø> (ø)

... and 72 more

... and 161 files with indirect coverage changes


Mention "git describe"

Example: git describe --abbrev=7 --long --always --dirty=-feature_smudge-clean.
basically it describes the current state of the repo using the closest tag in history.
so assuming you tag meaningfully what you'd read from a git describe is:
closest tag followed by number of commits current revision has on top
followed by SHA1 of current commit (abbreviated by default)
optionally, if you're in a dirty state you can add a suffix with --dirty
(which by default add -dirty, but you can choose whatever).
(thanks to Roberto for the hint!)

In particular, that command on one of my projects returns: v1.1.7-8-g2d03836-feature_smudge-clean
Closest tag is v1.1.7, I have 8 commits on top of that, last commit has abbreviated SHA1 g2d03836, I have some work staged and/or unstaged for commit.

I think this is a good idea but after some thoughts I feel it is a bit too advanced for the course - I think this would make a great blog post, though. My goal is that people understand branches and tags after the course and if they do, they can go out in the world and explore things. But thanks for the suggestion - I did not know this command before.


Add built-in support for List[]  django model properties

Add built-in support for List[]  django model properties

[ ] Core functionality
[ ] Alteration (enhancement/optimization) of existing feature(s)
[X] New behavior

In our Django model we have a field defined as an ArrayField of chars:
fields = ArrayField(models.CharField(max_length=150), null=True)
Strawberry gives this error:
NotImplementedError: GraphQL type for model field 'fields' has not been implemented
Which likely needs a custom resolver like this
@strawberry.django.field
def fields(self, root: MyObject, info: Info) -> List[str]:
    return root.fields

This issue tracks the enhancement of strawberry-graphql-django to support his data type natively.

Just a note in here when implementing this: An array field can contain another array field, so for example ArrayField(CharField) should generate List[str] and ArrayField(ArrayField(CharField)) should generate List[List[str]] and so on


Seed phrase screen- "next" button position is not according to the design.

The "next" button should be raised above.
Expected:
https://app.zeplin.io/project/5c73dc8aa74b4b4085a86a91/screen/5c751b69d391d651e7e58657

Actual:

iPhone 8
iOS 12.1.4

checked


DOC: Add examples to spatial.distance

Additionally, make first like use imperative mood

I'm not sure I see the benefit of these new examples. The formulas for each distance metric are pretty clear and the function signatures are straightforward, so what are the examples adding?

I simply like having examples. Everywhere. For me, it is much faster to just skip to the examples, copy & paste one and adjust it instead of going through the function signatures / the formula.
When there are examples, it is simpler to add new ones. I would like to see ones which show properties of the distance functions. For example, for cosine I added an example which shows that it is independant of the length of a vector.

I simply like having examples. Everywhere. For me, it is much faster to just skip to the examples, copy & paste one and adjust it instead of going through the function signatures / the formula.

I agree with this, ideally every function should have examples. %paste in IPython is my best friend:)

I agree that examples are generally useful but on this particular case (i.e. metric functions) I am not sure how much they can be useful. Anyway, I would either add examples to all metrics or to none.
p.s. To better show the properties of the metric couldn't be useful to add a link to the wiki page or to the paper where the metric is defined?

Anyway, I would either add examples to all metrics or to none.

I've just added the remaining examples to all metrics and dissimilarity measures.

@MartinThoma we've just merged a couple of PRs that added weights to most metrics and changed the pdist/cdist signatures. So this now needs a rebase. Demonstrating what the weights do would add value to the examples.

@rgommers I've rebased the pull request, but I don't think I'll find the time to demonstrate the influence of weights anytime soon.

Thanks @MartinThoma, no worries. I think this is OK to merge in its current state (disclaimer: haven't double checked all examples in detail).


UI: Click selects multiple items from

Sometimes when trying to select one item from a list in the user interface, the linter will select another item too. If you try again, the same misbehaviour will continue.
Since we do not know how to reproduce it, we cannot test it. So find out how to reproduce it first.

Should not be a problem in https://github.com/hpi-swa-teaching/SwaLint/tree/developBasedOn2015 any more.


Reuse D-Bus connection between update_engine and login1 in agent

Right now they connect and authenticate twice, we should be able to reuse the connection.

Note that this require clients calling Signal to filter incoming singals by path and method, as connection may subscribe to other signals as well.


which version of gtest/gflags glog depends on ?

thanks

0.3.3

thanks for quick response.
-- the version of gtest ?
-- the version of gflags ?

These libraries are universal and you can install them by yourself

As glog v0.3.3 released around 2013-02-01, thought the appropriate version of its deps should be
-- gflags v2.0, release on 21 Apr 2013
-- gtest v1.6,   release 19 Apr 2011
try recent version you'll encounter error message during compiling.
anyway, i'll close this issue. thanks


RHOARDOC-1603: Operator-based launcher installation procedure

@cmoulliard Would you please look at the operator-based installation procedure and let me know whether it seems OK to you?
Since this pull request also contains some additional related changes, please feel free to look at the rendered version: https://deploy-preview-1274--launcher-documentation.netlify.com/docs/minishift-installation#installing-launcher-tool-using-an-operator_minishift
Thank you:)
@snelluli1 Please take a look at the procedure an let me know if you see something that should be changed :) Thank you.

@snelluli1 Thak you for the comments, I have addressed them and updated the PR. Please re-review when you have a chance, and ack if everything seems OK to you. Please feel free to ping me if you have questions:) Thank you.


problem with streaming videos

here is the error message
"The byte stream type of the given URL is unsupported"

The error seems to originate from the video player component. Since this component is shipped with Unity, please refer to the Unity Forums for further questions.
The video player is pretty limited in streaming use cases, so you might have to incorporate other libraries or figure out how to get the video stream in one of the supported formats described here.


Add Enhanced Multisig Pallet to Collectives chain

This RFC proposes adding an enhanced Multisig pallet to Collectives chain for both better footprint on the blockchain and better enhanced control and ergonomics.

I actually had it as an open question to begin with and then moved it to subject as a suggestion. I did it by process of elimination of other system chains. But now that you mention it, I notice that the original multisig is available on all system chains. What are your thoughts?

afaiu RFC is not about implementation detail (although in some special cases it can be) but high level technical design decisions. I would like to see more examples/evidences of why stateful multisig would be significant improvement over stateless multisig such that it warrants the existing system chains to add a new pallet in its runtime. Introducing this pallet for new runtimes probably needs much less convincing.

So in your opinion the enhanced functionality, ease of use and less footprint (from quadratic to linear) are not enough? Or you think that these evidences are lacking enough backing from the RFC as is?

Some things which should be mentioned in drawbacks:

adding a new pallet which can control accounts across system chains substantially increases attack surface.
stateful code is especially hard to analyse fully.
multisig/pure proxy support is already patchy at best; adding another way of doing the same thing could stoke fragmentation with different UIs supporting different multisig configurations.


vdk-impala: Impala Ingestion

This change implements an ingestion mechanism to the Impala plugin.
This mechanism was copied from the Greenlplum one with minimal
changes.
Testing done: two unittests implemented, tested locally
Signed-off-by: Gabriel Georgiev<EMAIL_ADDRESS>

Closing this due to inactivity.


No joint authorship on blog posts

Joint authorship seems to not be working on the blog.
Example:

We're getting multiple authors through the "Co-Authors Plus" plugin, but if the theme doesn't know about this then it wouldn't render the information.

We'll take a look

@mackh thank you!

I've integrated the appropriate tags for the co-author plus with fallback to single author if that plugin ever gets disabled.
It looks like this now:

There are changes in both the theme and the plugins repos, the latter required to add support for co-authors to the featured/hero blog entry displays.

Thank you @fmann , I've tested that on staging, merged and deployed. It looks great.


NullPointerException received upon user login.

Hey Daniel,
I'm sure this has something to do with my config setup as honestly the whole X and Y value thing I'm not confident I've gotten correct. But I wonder if you could provide some insight as to where I'm going wrong.
Error received as shown below.
Cheers,
Jimmy/Rain
[10:27:52] [Server thread/INFO] [minecraft/PlayerList]: UseRainDance[/<IP_ADDRESS>:21245] logged in with entity id 60 at (227.5, 77.0, 10.5) [10:27:52] [envyware_concurrency_2/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]: java.lang.NullPointerException [10:27:52] [envyware_concurrency_2/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at com.envyful.better.dex.rewards.forge.player.DexRewardsAttribute.load(DexRewardsAttribute.java:70) [10:27:52] [envyware_concurrency_2/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at com.envyful.better.dex.rewards.shade.envy.api.forge.player.ForgePlayerManager$PlayerListener.lambda$onPlayerJoin$0(ForgePlayerManager.java:118) [10:27:52] [envyware_concurrency_2/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [10:27:52] [envyware_concurrency_2/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [10:27:52] [envyware_concurrency_2/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at java.base/java.lang.Thread.run(Thread.java:829)

Closing because this is a config issue


Compute resource format

Clean-up formatting of a list and fiddle with capitalization.

/lgtm
/approve


bug fix 4509. Configuration parameters CA and address in peer.deliver…

Type of change

Bug fix

Description
Fabric reads the values stored in core.yaml in the peer.deliveryclient.addressOverrides section, but when connecting to orderers through the connect method in the blocksprovider.go file (internal/pkg/peer/blocksprovider/blocksprovider.go) it is using the RandomEndpoint function (endpoint, err := d.Orderers.RandomEndpoint()) located in the connection.go file (internal/pkg/peer/orderers/connection.go) to set up the endpoint that will make the connection. However the RandomEndpoint function does not use the peer.deliveryclient.addressOverrides information read by Fabric.
Additional details

Related issues
https://github.com/hyperledger/fabric/issues/4509

Thanks for providing the fix. Would you also mind adding some unit tests to demonstrate the issue described and to make sure the fix indeed solves the problem? Moreover, to ensure we got it covered for potential future modifications?

Does the problem still occur in main branch? Typically fixes are made to main branch and then backported as desired to the release branches.

Thanks for providing the fix. Would you also mind adding some unit tests to demonstrate the issue described and to make sure the fix indeed solves the problem? Moreover, to ensure we got it covered for potential future modifications?

OK. I will do this.

Does the problem still occur in main branch? Typically fixes are made to main branch and then backported as desired to the release branches.

I tested branches 2.1, 2.2, 2.3, 2.4 and 2.5. I haven't tested it in main. I'll test it and let you know.

@marianothiago @C0rWin @denyeart
I don't think this is the right approach.
The override endpoints are first loaded from the core yaml when the node starts. Then when ever
Update(globalAddrs []string, orgs map[string]OrdererOrg)

is called, after a config TX, the source slice is rebuilt (this is the way the current config is applied as well after the node starts).  The sources slice is rebuilt by comparing the overrides to the addresses that come from the config block - globalAddrs  or per org orgs .  If an orderer override has the same address as one of the endpoints in the   globalAddrs  or orgs, it will be used instead of that specific address. This is the place to look for a bug, if there is one, in my opinion. According to the current code, overrides are a mechanism to override the definition of an endpoint, not to add more endpoints, which is what you do here.
With respect to your use case: you describe a case where a peer falls behind the ordering cluster config, and cannot connect to it. While the overrides may give you a partial solution, I think the more "updated" way to approach this is by starting the peer from a snapshot taken from another peer that is up to date.
And finally, this object is about to change in V3, as a result of the work we do to implement a byzantine block puller.

@marianothiago @C0rWin @denyeart
I don't think this is the right approach. The override endpoints are first loaded from the core yaml when the peer starts. Then when ever
Update(globalAddrs []string, orgs map[string]OrdererOrg)

is called, after a config TX, the source slice is rebuilt (this is the way the current config is applied as well after the peer starts). The sources slice is rebuilt by comparing the overrides to the addresses that come from the config block - globalAddrs or per org orgs . If an orderer override has the same address as one of the endpoints in the globalAddrs or orgs, it will be used instead of that specific address. This is the place to look for a bug, if there is one, in my opinion. According to the current code, overrides are a mechanism to override the definition of an endpoint, not to add more endpoints, which is what you do here.
With respect to your use case: you describe a case where a peer falls behind the ordering cluster config, and cannot connect to it. While the overrides may give you a partial solution, I think the more "updated" way to approach this is by starting the peer from a snapshot taken from another peer that is up to date.
And finally, this object is about to change in V3, as a result of the work we do to implement a byzantine block puller.

Actually, looking at the code, I see overrides are not applied when there are per org endpoints, only when there are global endpoints. This can explain the behavior you are describing @marianothiago
@denyeart aren't global endpoints deprecated?


Add command line and OSX tips

Not sure how you wanted to express typed commands so I just left them as 'command' within the json value but let me know if you had a particular format you'd like them and I can fix them.
Cheers!

@tanmdoan This is great! Thank you so much! Added a couple of line-notes for little formatting things if you wouldn't mind fixing and then I'll merge :)

@brittanystoroz I've made the changes you've suggested, I also removed the duplicate tip that I didn't realize you already covered!


Can not install on Mac - Slack v4.0.3

I tired installing both ways and different themes, installation says it was successful, but theme is not applied.
Mac - Mojave v10.14.6
Slack v4.0.3
current theme is now Material Oceanic
Checking for updates...

Please note that this is still experimental and can ruin your Slack application! In the case of a problem, please reinstall Slack.

? Please select an command Apply theme
Removing theme...

Successfully removed!

? Select a theme Dracula
Selected: dracula
current theme is now Dracula
Adding Dracula Theme Code to Slack...

Slack successfully themed. Please restart Slack to apply the theme.

Sorry, the plugin doesn't support older versions as Slack is updating constantly. Please upgrade slack if you can, otherwise you would need to clone the project and return to a version that worked.


Errors while awarding XP while non-"character" type actor is in party

I've been loving this module so far, it's made it a lot easier to handle XP in my game. My players and I have spotted an issue that can lead to errors while awarding XP depending on what actor types are in the party.
When Awarding XP outside of combat, non-player character actors (e.g. Familiars) might be in the "party", but they are not valid targets to be awarded XP. Right now, these invalid targets are included by default when using a default award XP dialog (e.g. game.pf2e_awardxp.openDialog()).
If the GM leaves these invalid targets checked in the XP award dialogue and presses the "Award" button, the following will happen:

Each party member prior to the first invalid target will receive XP
Attempting to give XP to an invalid target will produce the following error (visible in the browser developer console): TypeError: destination.system.details.xp is undefined
All remaining party members will receive no XP
The dialog window remains open, no errors are displayed in Foundry to the GM, and no message is posted in the chat saying that any XP was awarded. If the GM doesn't realize there is an error, and presses the "Award XP" button again, this will result in the steps above repeating.

One straightforward fix is to filter out any non-"character" actor types from the party in the default XP dialog (see my related PR https://github.com/jsavko/pf2e-award-xp/pull/5)

In addition to the 1 line changed in the PR, I had some other ideas to help protect against improperly awarding XP (either due to a JS/browser/network issue, or accidental double-clicks of the Award button (which can award XP twice).

JS Console logging of XP being awarded, the character's previous XP, the amount being awarded, and the new XP total. If an issue occurs, this could aid in debugging or reverting the XP changes.
Disabling the dialog as the first action when pressing "Award". This would decrease the time that the dialog would remain active, decreasing the time window where a double-click could possibly trigger awarding XP twice.
Including a nonce for the award dialog and ensuring that a player character isn't awarded XP twice even if a double-click event occurred

I can document this up in a separate, related issue if you wish as well.
Thank you!

Disabling the submit button is something I had planned for the next update.  I also like the logging and will implement that as well.
Thank you for your suggestions


fanin: Handle null time field in incoming points

Change a test probing for presence of the time field in a point so that
a null value is treated as if the time field was not set. This is in
line with other similar checks in the codebase. The end result is that
points with null time don't cause an exception.
Fixes #351.
Cherry picking to 0.4.x branch for inclusion in a 0.4.1 bugfix release.

LGTM. I can write the changelog.


[Examples] Fix build time getting progressively slower

Fixes #5872
Before we had watchers in examples/rollup.config.js that would simply copy build outputs over into /dist/:
    { src: '../build/playcanvas.d.ts', dest: 'dist/playcanvas.d.ts' },
    { src: '../build/playcanvas.js', dest: 'dist/iframe/playcanvas.js' },
    { src: '../build/playcanvas.dbg.js', dest: 'dist/iframe/playcanvas.dbg.js' },
    { src: '../build/playcanvas.prf.js', dest: 'dist/iframe/playcanvas.prf.js' },
    { src: '../build/playcanvas-extras.js', dest: 'dist/iframe/playcanvas-extras.js' },

This worked nice with running npm run develop and if you spawn another shell with target=debug_es5 npm run watch it keeps working for a while aswell, but over time it does more and more, the two rollup processes get in some kind of "create / watch - do stuff / create do stuff again" loop or something.
This can be fixed when we stop putting watchers on build outputs and instead use the rollup target configuration functions (e.g. function buildTarget(buildType, moduleFormat)) directly in examples/rollup.config.js for building the mentioned build outputs.
This is not complicated by itself, but what makes the PR a bit bigger is the separation of a few functions that we need to call from the Examples rollup script.
I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

Nice one @kungfooman , much appreciated. The separation into modules is great!
I'll merge this now and give it a good test over the next few days as I work on some new engine features.

So far this has worked great, no issues .. and maybe even fixed another issue, where sometimes changes from extras were ignored and I have to manually build extras to get those in again.


drivers: counter stm32 rtc  with set/get top_value API

Introduce a set_top_value API based on the RTC of the stm32 device
fixes https://github.com/zephyrproject-rtos/zephyr/issues/37206
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

rebase and fix coding style errors

changing to use the alarm B instead of WUT counter.

Closed as RTC HW block is not fitting quite well with this functionality.


Add profile updater request

Description
As a user, I want to update my public profile from owl.link or similar apps that manage some profile data for me. As an app developer, I want to update the user's public profile.
This PR adds a request to connect for updating the user's profile.
This is part of https://github.com/hirosystems/stacks-wallet-web/issues/2544
Type of Change

[x] New feature
[ ] Bug fix
[ ] API reference/documentation update
[ ] Other

Does this introduce a breaking change?
No
Are documentation updates required?
Not sure where the protocol is documented.## Checklist

[x] Code is commented where needed
[ ] Unit test coverage for new or modified code paths
[ ] yarn lerna run test passes
[ ] Changelog is updated
[ ] Tag 1 of @kyranjamie or @aulneau for review

@janniks Thank you. Very helpful!

This is replaced by #279


feat: Allowing Limiting Resourced Servers to read notFile parameters

In our local server when we try to upload a file and multiple parameters occasionally fields left out. It never happens on local development however in our own server we could not find a solution so we created a fork of this crate.
Think that we have a body of form-data like:

file : image.jpg
validityStart : 2022-06-29T07:02:50+00:00

In some cases (depends on the file) for non file fields field.next().await returns a split text like '2022-06-2' and if we call another field.next().await the results is '9T07:02:50+00:00'.
To fix this issue we used your own logic that is used for files.

Thank you for this fix, I have updated the crate to 1.2.0 version with your fix 👍


Keybind disable mode

Description of the new feature/enhancement
There should be a way to allow "passthrough" of keybindings to the terminal session - for example, the keybinding Ctrl+Shift+↓ is used in Terminal to resize a pane, but it's also used by the Linux terminal multiplexer BYOBU to resize panes.
I envision something like a command in the palette to disable Terminal keybindings and allow then to pass through to the terminal itself. This command would automatically disable "focus mode" (since there'd be no way to exit focus mode again) and would be a toggle.
I searched around in existing open/closed tickets as well as the documentation to see if something like this already exists, and as far as I can tell it doesn't. #5790 is somewhat related, in that it could be a "workaround" for this feature.
Proposed technical implementation details (optional)
I imagine it'd be a fairly simple matter to have an early exit in the keybind handling code to check if this mode is enable, and if so act as if there are no keybindings.

You could try just disabling the keybindings that you don't want the terminal to use. I'm imagining that if you're using byobu, then you probably aren't using the panes in the Terminal. You could just unbind those specific keys:
        { "command": "unbound", "keys": "ctrl+shift+down" },
        { "command": "unbound", "keys": "ctrl+shift+up" },

wait hold up

for example, the keybinding Ctrl+Shift+↓ is used in Terminal to resize a pane

Resizing panes should be on Ctrl+Shift+{arrow}:
        { "command": { "action": "resizePane", "direction": "down" }, "keys": "alt+shift+down" },
        { "command": { "action": "resizePane", "direction": "left" }, "keys": "alt+shift+left" },
        { "command": { "action": "resizePane", "direction": "right" }, "keys": "alt+shift+right" },
        { "command": { "action": "resizePane", "direction": "up" }, "keys": "alt+shift+up" },

Disabling all keybindings seems like a pretty big hammer for this scenario

Hmm, then perhaps the solution is more in the issue I linked which would allow profiles to override keybindings. I use byobu on some WSL and SSH connections, but definitely not on all of my profiles. I use Terminal panes in some profiles. And regardless of whether my keybindings is default doesn't change that for some people the terminal keybindings are going to intersect with some client application keybindings at some point. Perhaps my approach is heavy-handed, but that doesn't mean the problem isn't valid.

Such a feature will also help with Midnight Commander.
Either per profile setting, or a toggle, toggle passthrough on/off.

Crazy thought that's going to sound like half a thought:
I've toyed around in my head with having different keymaps in the past, and letting the user just set their keymap to one of a pre-defined set, then apply keybindings on top of that keymap. So what if there was just a keymap with no keys defined, and then an action for "setKeymap" or something, that would let you hot-swap between keymaps. But then you'd need two keybindings - one for setKeymap(keymap=empty), and another for setKeymap(keymap=default).
See also #2205

From #17055:

I use Vim in Windows Terminal and there's some keys conflicting. I know that I can unbind these keys so that I can use them in Vim, and I know that I can changes these keys binding to other if I still need these helpful actions provided by this amazing project.
However, if I don't want to disrupt the default key bindings (since I'm not able to manage so many keys and I'd believe the default key bindings are assigned more logically), then I hope there's a toggling key to allow me to disable any other key bindings defined default in Windows Terminal when I use Vim or other applications and then enable it again when I need these default bindings.
Sure, this may not be the best way. But this is the best alternative that I can imagine. So it'd be highly appreciated if there're better ways to achieve my will.