Tele 5 download not working

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2022.02.04. (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
[ ] I've read about sharing account credentials and I'm willing to share it if required

Region
Germany
Description
Tele 5 seems to have redesigned the mediathek.
Verbose log
[debug] Command-line config: ['--write-thumbnail', '--write-description', '-vU', 'https://tele5.de/mediathek/relic-hunter-die-schatzjaegerin/der-millionen-dollar-handschuh/']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2022.02.04 [c1653e9ef]
[debug] Python version 3.9.2 (CPython 64bit) - Linux-5.10.0-11-amd64-x86_64-with-glibc2.31
[debug] exe versions: ffmpeg 4.4 (setts,fdk), ffprobe 4.4, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, secretstorage, mutagen, sqlite, websockets
[debug] Proxy map: {'https': 'http://xxxx:yyyy@my.server:9999'}
Latest version: 2022.02.04, Current version: 2022.02.04
yt-dlp is up to date (2022.02.04)
[debug] Using fake IP <IP_ADDRESS> (DE) as X-Forwarded-For
[debug] [Tele5] Extracting URL: https://tele5.de/mediathek/relic-hunter-die-schatzjaegerin/der-millionen-dollar-handschuh/
[Tele5] der-millionen-dollar-handschuh: Downloading webpage
ERROR: [Tele5] der-millionen-dollar-handschuh: Unable to extract jwplatform id; please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the "Broken site" issue template properly. Confirm you are on the latest version using -U; please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the "Broken site" issue template properly. Confirm you are on the latest version using -U
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 612, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/tele5.py", line 102, in _real_extract
    jwplatform_id = extract_id(JWPLATFORM_ID_RE, 'jwplatform id')
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/tele5.py", line 91, in extract_id
    return self._html_search_regex(
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 1195, in _html_search_regex
    res = self._search_regex(pattern, string, name, default, fatal, flags, group)
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 1186, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)

Good news: fixed in yt-dl PR https://github.com/ytdl-org/youtube-dl/pull/30532, which should transfer directly to yt-dlp.
Bad news: ERROR: DRM protected (caused by ExtractorError(u'Missing deviceId in context',))
Can you play this in the browser with DRM disabled?

Good news: fixed in yt-dl PR ytdl-org/youtube-dl#30532, which should transfer directly to yt-dlp.
Bad news: ERROR: DRM protected (caused by ExtractorError(u'Missing deviceId in context',))
Can you play this in the browser with DRM disabled?

You are right, it's not working without DSM - too bad :(

@dirkf @arminfuerst actually, after a quick check, half of the titles currently online are offered without drm so your fix/pull request comes in handy. thank you.
(a little shameless self-promotion: for the titles that do require drm, I created a dirty little user javascript + user css that makes the new page less annoying: https://greasyfork.org/en/scripts/440645-tele5-video )

Some content producers can't get them enough of that tasty DRM. The Mouse likes it more than chocolate, which I hear is preferred to the traditional cheese.
But locally produced shows may not be affected so much.

50e93e03a7ca6ae35a319ea310104f7d6d91eee3


Ruby 3.0 is missing, at least on Ubuntu 22.04

Describe the bug
Ruby 3.0 is missing, at least on Ubuntu 22.04. I haven't checked the sources, but according to the help:

We supply packages for each minor version.
For example, there are packages for Ruby 3.0 and 3.1. These packages always contain the most recent tiny version. Learn more below in subsection Minor version packages.

To Reproduce
Linux distribution: Ubuntu 22.04
Steps to reproduce the behavior:

Configure the repository as described here, for Ubuntu 22.04
List the packages:

# aptitude search fullstaq-ruby-
p   fullstaq-ruby-3.1                                                                                - Fullstaq Ruby 3.1
p   fullstaq-ruby-3.1-jemalloc                                                                         - Fullstaq Ruby 3.1-jemalloc
p   fullstaq-ruby-3.1-malloctrim                                                                       - Fullstaq Ruby 3.1-malloctrim
p   fullstaq-ruby-3.1.2                                                                                - Fullstaq Ruby 3.1.2
p   fullstaq-ruby-3.1.2-jemalloc                                                                       - Fullstaq Ruby 3.1.2-jemalloc
p   fullstaq-ruby-3.1.2-malloctrim                                                                     - Fullstaq Ruby 3.1.2-malloctrim
p   fullstaq-ruby-3.1.3                                                                                - Fullstaq Ruby 3.1.3
p   fullstaq-ruby-3.1.3-jemalloc                                                                       - Fullstaq Ruby 3.1.3-jemalloc
p   fullstaq-ruby-3.1.3-malloctrim                                                                     - Fullstaq Ruby 3.1.3-malloctrim
p   fullstaq-ruby-3.2                                                                                - Fullstaq Ruby 3.2
p   fullstaq-ruby-3.2-jemalloc                                                                         - Fullstaq Ruby 3.2-jemalloc
p   fullstaq-ruby-3.2-malloctrim                                                                       - Fullstaq Ruby 3.2-malloctrim
p   fullstaq-ruby-3.2.0                                                                                - Fullstaq Ruby 3.2.0
p   fullstaq-ruby-3.2.0-jemalloc                                                                       - Fullstaq Ruby 3.2.0-jemalloc
p   fullstaq-ruby-3.2.0-malloctrim                                                                     - Fullstaq Ruby 3.2.0-malloctrim
p   fullstaq-ruby-3.2.1                                                                                - Fullstaq Ruby 3.2.1
p   fullstaq-ruby-3.2.1-jemalloc                                                                       - Fullstaq Ruby 3.2.1-jemalloc
p   fullstaq-ruby-3.2.1-malloctrim                                                                     - Fullstaq Ruby 3.2.1-malloctrim
p   fullstaq-ruby-common                                                                               - Fullstaq Ruby common dependencies

Expected behavior
Packages fullstaq-ruby-3.0* should be present.

This is normal. Some older Ruby versions are not available on newer distributions, and some newer Ruby versions not on older distributions, because they don't compile. For example Ruby 3.0 is not compatible with the OpenSSL version shipped with Ubuntu 22.04. Vice-versa, newer Ruby versions don't support older OpenSSL versions.


[Freesound] Unable to extract music title

[x] I've verified and I assure that I'm running youtube-dl 2017.01.02

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

ERROR: Unable to extract music title; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 694, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 359, in extract
    return self._real_extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/freesound.py", line 28, in _real_extract
    webpage, 'music title', flags=re.DOTALL)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 671, in _html_search_regex
    res = self._search_regex(pattern, string, name, default, fatal, flags, group)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 662, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract music title; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

http://www.freesound.org/people/miklovan/sounds/194503/

a quick fix:

diff --git a/youtube_dl/extractor/freesound.py b/youtube_dl/extractor/freesound.py
index 5ff62af2a..65b2fd27d 100644
--- a/youtube_dl/extractor/freesound.py
+++ b/youtube_dl/extractor/freesound.py
@@ -23,9 +23,7 @@ class FreesoundIE(InfoExtractor):
         mobj = re.match(self._VALID_URL, url)
         music_id = mobj.group('id')
         webpage = self._download_webpage(url, music_id)
-        title = self._html_search_regex(
-            r'
.*?(.+?)',
-            webpage, 'music title', flags=re.DOTALL)
+        title = self._og_search_property('audio:title', webpage, 'song title')
         description = self._html_search_regex(
             r'
(.*?)
', webpage, 'description',
             fatal=False, flags=re.DOTALL)


Networks: custom networks

Added a section on lack of custom network support.

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
1

Sum
2


Migrate to null safety

dartdoc is not null safe, but it doesn't need to write it in pubspec.yml. I remove it.
exec dart pub upgrade --null-safety
exec dart migrate
fix mock test as upgraded mockito
fix test by type error

Fantastic! どうもありがとうございました
I'll have a look in detail later.
The tests are all passing.
If I'm able to merge, I'll make a release soon :)

@macoshita Merged and have published as 1.0.0
Thanks so much for your contribution

Thank you!


Carml and Big data ingestion Tools

Hi!
Can I ingest batch social networks data such as tweets into CARML using one of the big data ingestion tools such as NIFI , Flume or Kafka?
Regards,
Hiba

Hi @SebeiHiba ,
I wouldn't recommend trying to load large data sources into CARML. CARML in it's current state works best for relatively small sources. Support for larger sources is on the top of our roadmap.
So, you could use CARML for large sources as long as you have a process that chunks the source in some way and maps those chunks using CARML.

Hi!
thank you for your response. Actually I was talk about the ability to connect
CARML and Apache Kafka as in showing in this presentation slide 38 https://fr.slideshare.net/gschmutz/ingesting-streaming-data-into-graph-database. The tweet will not be large but I will have a big number of tweets (millions of tweets) that will be mapped one by one into RDF through CARML.
Best Regards,
1

Ah yes! Thanks for pointing out this presentation. That's very cool.
So yes, streaming it in that way should definitely be possible.

But actually no java example is provided that can explain the connection between Kafka and CARML

That's true. CARML is independent of these data pipelining frameworks.
But this part of the documentation is relevant here: https://github.com/carml/carml#input-stream-extension.
So, if you can create an inputstream from a chunk during your processing with Kafka, you can bind it to a CARML RmlMapper instance.


Possible solution to the reddit hangups.

Ripme version: Latest
Java version:  11.0.4
Operating system:  10 v1903
Exact URL you were trying to rip when the problem occurred: Any.
Please include any additional information about how to reproduce the problem: Any reddit post title to a video (possibly images too, done very little testing) that has forbidden characters in the file name. (These for example: <>:"/|?*) Will cause the program to stall and hang. Have done very little testing regarding this, but, it has fixed a lot of the issues I was having at first glance. But may only be relevant to v.redd.it links. As that was the only few I was testing. Though in theory could be affecting all of them.

Expected Behavior
do stuff
Detail the expected behavior here.
do stuffs a lot
Actual Behavior
doesnt do stuffs a lot does stuff little then br4ke
Detail the actual (incorrect) behavior here. You can post log snippets or attach log files to your issue report.
The stuff that it does isn't what it should do. Well, it is what it should do, but it's not doing it to the extent that is expected when you tell it to do what it should do. So if it's not doing what it should be expected to do, and only a portion of what is expected of it, it's really not doing what it should do, now, is it? Therefore, its not doing what it should do and that is what it is doing.

Some more testing and this includes any post title that ends with any amount of periods as windows folders redact periods in the end so the path cannot be found.

Even more testing and I was able to fix almost all hang-ups it would seem by just changing Reddit post titles to redact unneeded characters. For example in RedditRipper I added:
subdirectory = subdirectory.replaceAll("[^ !#-)+-.0-9;=@-\\[\\]-{}~]", "").trim().replaceAll("\\.+$", "");
This makes (all instances that I can think of) the post titles all valid folder/file names within windows and since windows is the most picky, should work for other filesystems too. Likely not the perfect ideal solution, but, in my testing seems to fix most issues that I am used to encountering.

@cyian-1756 I'd take a test build to see if this stops my hangups.  Currently i'm tracking 50 users in a excel sheet which have hangups.  I've isolated the exact post from about 15 of them.

@madhatr I can provide a test build if you'd like, if you'd trust me. Just lmk if and how. And, if you do, if it doesn't work, please just provide the logs as I also have a lot of debug code to tell me exactly what happened. I'm quite sure that most of the stalls are mostly fixed now as I've done a list of 200 subreddits so far without any issues.

@Wea1thRS Okay link a test build i'll test it out.

ripme-1.7.90-jar-with-dependencies.zip
Try this one out. (as usual change from zip to jar)

@madhatr if you could check your problematic links and validate this works and check filenames are as would be expected would be brilliant.

@Wea1thRS  Can confirm, this has correctly ripped about 10 reddit users on my fail list without issue.

@madhatr Can you provide me your problematic list of links? Or are you able to test out another test build?

@Wea1thRS https://pastebin.com/xjBsyq2x


Fix the traceback if no commit sha is found

Fix for Issue #514
With fix:
06-22-2022 14:48:20 DEBUG    /home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_base.py:193 get_metrics_from_apps() Adding metric for app python-binary-build1
06-22-2022 14:48:20 DEBUG    /home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_base.py:182 get_metrics_from_apps() Repo URL for app python-binary-build11 is currently None
06-22-2022 14:48:20 DEBUG    /home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/__init__.py:100 __parse_repourl() repo url = None
06-22-2022 14:48:20 WARNING  Missing data for CommitTime metric from Build first/python-binary-build11-1 in app python-binary-build11: Couldn't get repo_url.Couldn't get commit hash from annotations

Without fix:
06-22-2022 14:47:25 DEBUG    /home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_base.py:193 get_metrics_from_apps() Adding metric for app python-binary-build1
06-22-2022 14:47:25 DEBUG    /home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_base.py:182 get_metrics_from_apps() Repo URL for app python-binary-build11 is currently None
06-22-2022 14:47:25 DEBUG    /home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/__init__.py:100 __parse_repourl() repo url = None
06-22-2022 14:47:25 DEBUG    /home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_base.py:341 _set_commit_timestamp() sha: None, commit_timestamp not found in cache, executing API call.
06-22-2022 14:47:25 ERROR    Error encountered while getting CommitMetric info:
06-22-2022 14:47:25 ERROR    argument of type 'NoneType' is not iterable
Traceback (most recent call last):
  File "/home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_base.py", line 214, in get_metric_from_build
    metric = self._set_commit_timestamp(metric, errors)
  File "/home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_base.py", line 345, in _set_commit_timestamp
    metric = self.get_commit_time(metric)
  File "/home/migi/Development/Konveyor/Pelorus/pelorus-mpryc/exporters/committime/collector_github.py", line 48, in get_commit_time
    if "gitlab" in git_server or "bitbucket" in git_server:
TypeError: argument of type 'NoneType' is not iterable

@redhat-cop/mdt

/retest


Placeholder for sha256s to avoid length check

Issue description
Often when writing a new nix expression I am faced with the need to make up with a valid sha256 just to try evaluating the expression and pull the real hash from the resulting error. The hash validity check makes this unnecessarily cumbersome since I need to find a hash elsewhere and then modify it to ensure that a rebuild occurs.
I suggest that the hash attribute validation learn to accept a particular placeholder string (e.g. !) as a valid digest. This would remove a great deal of friction from the process of crafting an expression.

FWIW I just insert 52 1's, which in vim can be done with: "52i1" or so.  But this is more of a learned workaround than something "good" :).

and C-u 52 C-u 1 for users of the one true editor.

You are all heretics because clearly 64 zeros are the way to go. At least you don't need to remember weird constant 52. (64 base-16 4-bit nibbles is obviously 256, and 256 is in the name of the hash)

As a workaround I prefer to go to the start of the string and then type this vim:
vt"r0
So I do not need to care about length, but still I need to copy some random hash.

An alternative is that in the case of a missing hash attribute, the correct hash is reported in a user friendly manner.

I have a snippet in Atom (hides):
'.source.nix':
  'sha256 hash':
    'prefix': 'sha256'
    'body': '''
        sha256 = "${1:0000000000000000000000000000000000000000000000000000}";
      '''
  'inherit pname version':
     'prefix': 'inherit'
     'body': 'inherit pname version;'

@bgamari given all these suggestions can this issue be closed now?

@aanderse From my perspective, the issue it not resolved at all. These are all work arounds.

Does lib.fakeSha256 not fix this?

This thread predates fakeSha256 - 68a6b47b8cdbcef4cab3a1f5fae7667a792c27eb.


merge other workshop repository

Add devcontainer support
Adapt original workshop resources and code and merge with 2nd repository
Unified workshop
Extended README with setup instructions
Added AAD authentication method to quickstart

@csiebler @Philipp-hinderberger  please have a look into it.


Implement Image Resize

Hello!
This is not an issue, but I did want to bring this feature request to the maintainers' attention. (Not sure where else to put this.)
I was wondering if an image resizing tool could be implemented. Not resizing the canvas but the image itself.
Thank you for your work on this project. 😸

Also an option to resize the image before or while it is loading into the editor.
With this option a user can select/capture a huge multi megapixel picture to work with but in the editor its scaled down to a predefined image size.

Hi, we are a recent convert from Aviary/Froala and not having the ability to resize an image seems like a pretty basic feature for an image editor. Our users are wondering why they can't resize. If you could add this feature it would be greatly appreciated. Thanks!!

Any update on this resize feature?

Any update on this resize feature?

Any update on this resize feature?

I downloaded the code and poked around. I don't see any reason why resize couldn't be supported as I've done it myself outside of the TUI ecosystem with Pica. Fabric supports manipulating the canvases / images to resize already. It seems reasonable that undo history might need to be optionally cleared for this operation when deciding to work with exceedingly large images.
I started working on the feature, but got hanged up on a few details during development around the complex web of modularity for UI / commands. The example doesn't render all the actions properly (they are all black) for me, although I am using the latest release in a project of mine just fine. Will keep poking at it, although it seems to me that it would be a very simple matter for a dev already familiar with the framework to jump in and implement this in very little time.
For anyone needing a solution not baked in, here's the Pica-based solution which is very rough, but may give you a starting place. I literally just hacked this together, so bugs may ensue :) You could also change this to using Fabric quite easily if needed.
`
resize(maxWidth = 0, maxHeight = 0) {
console.log('resizing with maximum width and height', maxWidth, maxHeight);
const pica = Pica();
const srcCanvas = document.createElement('canvas');
const image = new Image();
image.src = this.getImageData();
image.onload = () => {
  const origAspectRatio = image.width / image.height;
  let targetWidth, targetHeight;

  console.log('original aspect ratio', origAspectRatio);

  // determine which dimension is going to be the limiting one (hit the max), so we can us it and scale the other by it
  const maxWidthRatio = image.width ? maxWidth / image.width : 0;
  const maxHeightRatio = image.height ? maxHeight / image.height : 0;

  if (maxWidthRatio >= 1 && maxHeightRatio >= 1) {
    console.log('image is already small enough, nothing to do');
    return;
  } else if (maxWidthRatio === 0 && maxHeightRatio === 0) {
    console.log('no resize dimensions specified, nothing to do');
    return;
  } else if (maxHeightRatio > maxWidthRatio) {
    targetWidth = maxWidth;
    targetHeight = maxWidth / origAspectRatio;
    console.log('clamping width to max, resizing dimensions to', targetWidth, targetHeight);
  } else if (maxWidthRatio > maxHeightRatio) {
    targetHeight = maxHeight;
    targetWidth = maxHeight * origAspectRatio;
    console.log('clamping height to max, resizing dimensions to', targetWidth, targetHeight);
  }

  srcCanvas.width = image.width;
  srcCanvas.height = image.height;

  const ctx = srcCanvas.getContext('2d');
  ctx.drawImage(image, 0, 0);

  // create the destination canvas
  const destCanvas = document.createElement('canvas');
  destCanvas.width = targetWidth;
  destCanvas.height = targetHeight;

  pica.resize(srcCanvas, destCanvas).then(async () => {
    console.log('resized');

    this.data = destCanvas.toDataURL();

    // THIS FUNCTION JUST INITIALIZES THE TUI IMAGE EDITOR WITH THE ABOVE DATA
    // see: includeUI.loadImage.path
    await this.initImageEditor();
  });
};

}
`

I downloaded the code and poked around. I don't see any reason why resize couldn't be supported as I've done it myself outside of the TUI ecosystem with Pica. Fabric supports manipulating the canvases / images to resize already. It seems reasonable that undo history might need to be optionally cleared for this operation when deciding to work with exceedingly large images.
I started working on the feature, but got hanged up on a few details during development around the complex web of modularity for UI / commands. The example doesn't render all the actions properly (they are all black) for me, although I am using the latest release in a project of mine just fine. Will keep poking at it, although it seems to me that it would be a very simple matter for a dev already familiar with the framework to jump in and implement this in very little time.
For anyone needing a solution not baked in, here's the Pica-based solution which is very rough, but may give you a starting place. I literally just hacked this together, so bugs may ensue :) You could also change this to using Fabric quite easily if needed.
  resize(maxWidth = 0, maxHeight = 0) {
    console.log('resizing with maximum width and height', maxWidth, maxHeight);
    const pica = Pica();

    const srcCanvas = document.createElement('canvas');
    const image = new Image();
    image.src = this.getImageData();
    image.onload = () => {
      const origAspectRatio = image.width / image.height;
      let targetWidth, targetHeight;

      console.log('original aspect ratio', origAspectRatio);

      // determine which dimension is going to be the limiting one (hit the max), so we can us it and scale the other by it
      const maxWidthRatio = image.width ? maxWidth / image.width : 0;
      const maxHeightRatio = image.height ? maxHeight / image.height : 0;

      if (maxWidthRatio >= 1 && maxHeightRatio >= 1) {
        console.log('image is already small enough, nothing to do');
        return;
      } else if (maxWidthRatio === 0 && maxHeightRatio === 0) {
        console.log('no resize dimensions specified, nothing to do');
        return;
      } else if (maxHeightRatio > maxWidthRatio) {
        targetWidth = maxWidth;
        targetHeight = maxWidth / origAspectRatio;
        console.log('clamping width to max, resizing dimensions to', targetWidth, targetHeight);
      } else if (maxWidthRatio > maxHeightRatio) {
        targetHeight = maxHeight;
        targetWidth = maxHeight * origAspectRatio;
        console.log('clamping height to max, resizing dimensions to', targetWidth, targetHeight);
      }

      srcCanvas.width = image.width;
      srcCanvas.height = image.height;

      const ctx = srcCanvas.getContext('2d');
      ctx.drawImage(image, 0, 0);

      // create the destination canvas
      const destCanvas = document.createElement('canvas');
      destCanvas.width = targetWidth;
      destCanvas.height = targetHeight;

      pica.resize(srcCanvas, destCanvas).then(async () => {
        console.log('resized');

        this.data = destCanvas.toDataURL();

        // THIS FUNCTION JUST INITIALIZES THE TUI IMAGE EDITOR WITH THE ABOVE DATA
        // see: includeUI.loadImage.path
        await this.initImageEditor();
      });
    };
  }

Can you explain me how you added this feature?

How to add button to open menu for resize?

In my case, I actually used a modified version of https://www.npmjs.com/package/ngx-tui-image-editor and included it in my project. Here's the code I used, which you may find needs some fix-up. Note that the resize occurs completely outside of the tui.image-editor. I found it difficult to delve into the innards there and thus settled for adding a layer with some buttons to resize.
`/**

Original code from https://www.npmjs.com/package/ngx-tui-image-editor, MIT license
*/

import {
AfterViewInit,
Component,
ElementRef,
EventEmitter,
Input,
OnDestroy,
ViewChild,
Output,
ViewEncapsulation
} from '@angular/core';
import ImageEditor from 'tui-image-editor';
import Pica from 'pica';
import mixinDeep from 'mixin-deep';
const clone = require('rfdc')();
import {
IAddTextEvent,
IMousedownEvent,
IGraphicObjectProps,
IOptions
} from './toast-ui-image-editor.models';
import 'tui-image-editor/dist/svg/icon-a.svg';
import 'tui-image-editor/dist/svg/icon-b.svg';
import 'tui-image-editor/dist/svg/icon-c.svg';
import 'tui-image-editor/dist/svg/icon-d.svg';
enum editorEvents {
addText = 'addText',
mousedown = 'mousedown',
objectActivated = 'objectActivated',
objectMoved = 'objectMoved',
objectScaled = 'objectScaled',
redoStackChanged = 'redoStackChanged',
textEditing = 'textEditing',
undoStackChanged = 'undoStackChanged'
}
const includeUIOptions = {
includeUI: {
initMenu: 'filter'
}
};
const editorDefaultOptions: IOptions = {
cssMaxWidth: 700,
cssMaxHeight: 500
};
interface IImageEditor extends ImageEditor {
off(eventName: string): void;
}
@Component({
selector: 'ngx-tui-image-editor',
template: `

Resize:
1x
1.5x
2x

`,
styleUrls: [
'../../../../../node_modules/tui-image-editor/dist/tui-image-editor.css'
],
encapsulation: ViewEncapsulation.None
})
export class ToastUiImageEditorComponent implements AfterViewInit, OnDestroy {
@Input() includeUI = true;
@Input() options: IOptions;
@Input() id: string;
@Input() readonly data: string;
@Output() addText = new EventEmitter();
@Output() mousedown = new EventEmitter();
@Output() objectActivated = new EventEmitter();
@Output() objectMoved = new EventEmitter();
@Output() objectScaled = new EventEmitter();
@Output() redoStackChanged = new EventEmitter();
@Output() textEditing = new EventEmitter();
@Output() undoStackChanged = new EventEmitter();
@ViewChild('imageEditor', { static: true }) editorRef: ElementRef;
editorInstance: ImageEditor;
newData: string;
async ngAfterViewInit() {
console.log('ToastUiImageEditorComponent(): ngAfterViewInit()');
this.newData = this.data;
await this.initImageEditor();
}
async initImageEditor() {
// get defaults
let options = mixinDeep({}, clone(editorDefaultOptions));
// console.log('options now', JSON.stringify(options));
if (this.includeUI) {
  // get includeUI defaults
  options = mixinDeep(options, clone(includeUIOptions));
  // console.log('options now', JSON.stringify(options));
  // console.log('clone', clone(includeUIOptions));

  // get overrides
  options = mixinDeep(options, clone(this.options));
  // console.log('options now', JSON.stringify(options));

  if (!!this.newData && this.newData.length > 0) {
    options = mixinDeep(options, {
      includeUI: {
        loadImage: {
          path: this.newData,
          name: 'loaded image'
        }
      }
    });
  }

  // console.log('options now', JSON.stringify(options));
}

// if we have an existing image editor, destroy it
if (!!this.editorInstance) {
  console.log('destroying old image editor');
  this.editorInstance.destroy();
}

// console.log('creating image editor with options', options);
const editorInstance = new ImageEditor(
  this.editorRef.nativeElement,
  options
);
this.editorInstance = editorInstance;

// Patch the loadImageFromURL of our tui imageEditor instance:
this.editorInstance.loadImageFromURL = (function() {
  console.log('image editor loadImageFromURL');
  const cached_function = editorInstance.loadImageFromURL;
  function waitUntilImageEditorIsUnlocked(imageEditor) {
    return new Promise((resolve, reject) => {
      const interval = setInterval(() => {
        if (!imageEditor._invoker._isLocked) {
          clearInterval(interval);
          resolve();
        }
      }, 100);
    });
  }
  return function() {
    return waitUntilImageEditorIsUnlocked(editorInstance).then(() => {
      console.log('loadImageFromURL', arguments);
      return cached_function.apply(this, arguments);
    });
  };
})();

this.addEventListeners();

}
ngOnDestroy() {
this.removeEventListeners();
this.editorInstance.destroy();
}
getImageData() {
const dataUrl = this.editorInstance.toDataURL({format: 'jpeg', quality: 0.9});
console.log('have data length', dataUrl.length);
return dataUrl;
}
async reset() {
this.newData = this.data;
await this.initImageEditor();
}
resize(maxWidth = 0, maxHeight = 0) {
console.log('resizing with maximum width and height', maxWidth, maxHeight);
const pica = Pica();
const srcCanvas = document.createElement('canvas');
const image = new Image();
image.src = this.getImageData();
image.onload = () => {
  const origAspectRatio = image.width / image.height;
  let targetWidth, targetHeight;

  console.log('original aspect ratio', origAspectRatio);

  // determine which dimension is going to be the limiting one (hit the max), so we can us it and scale the other by it
  const maxWidthRatio = image.width ? maxWidth / image.width : 0;
  const maxHeightRatio = image.height ? maxHeight / image.height : 0;

  if (maxWidthRatio >= 1 && maxHeightRatio >= 1) {
    console.log('image is already small enough, nothing to do');
    return;
  } else if (maxWidthRatio === 0 && maxHeightRatio === 0) {
    console.log('no resize dimensions specified, nothing to do');
    return;
  } else if (maxHeightRatio > maxWidthRatio) {
    targetWidth = maxWidth;
    targetHeight = maxWidth / origAspectRatio;
    console.log('clamping width to max, resizing dimensions to', targetWidth, targetHeight);
  } else if (maxWidthRatio > maxHeightRatio) {
    targetHeight = maxHeight;
    targetWidth = maxHeight * origAspectRatio;
    console.log('clamping height to max, resizing dimensions to', targetWidth, targetHeight);
  }

  srcCanvas.width = image.width;
  srcCanvas.height = image.height;

  const ctx = srcCanvas.getContext('2d');
  ctx.drawImage(image, 0, 0);

  // create the destination canvas
  const destCanvas = document.createElement('canvas');
  destCanvas.width = targetWidth;
  destCanvas.height = targetHeight;

  pica.resize(srcCanvas, destCanvas).then(async () => {
    console.log('resized');

    this.newData = destCanvas.toDataURL();
    await this.initImageEditor();
  });
};

// this.editorInstance.
//
// //scale the image to 600 (width) and keep aspect ratio
// var scaleFactor = resize_width / el.target.width;
// elem.width = resize_width;
// elem.height = el.target.height * scaleFactor;
//
// //draw in canvas
// var ctx = elem.getContext('2d');
// ctx.drawImage(el.target, 0, 0, elem.width, elem.height);
//
// //get the base64-encoded Data URI from the resize image
// var srcEncoded = ctx.canvas.toDataURL(el.target, 'image/jpeg', 0);
//
// //assign it to thumb src
// document.querySelector('#image').src = srcEncoded;
//
// /*Now you can send "srcEncoded" to the server and
// convert it to a png o jpg. Also can send
// "el.target.name" that is the file's name.*/

}
private addEventListeners() {
this.editorInstance.on(editorEvents.addText, event =>
this.addText.emit(event)
);
this.editorInstance.on(editorEvents.mousedown, (event, originPointer) =>
this.mousedown.emit({ event, originPointer })
);
this.editorInstance.on(editorEvents.objectActivated, event =>
this.objectActivated.emit(event)
);
this.editorInstance.on(editorEvents.objectMoved, event =>
this.objectMoved.emit(event)
);
this.editorInstance.on(editorEvents.objectScaled, event =>
this.objectScaled.emit(event)
);
this.editorInstance.on(editorEvents.redoStackChanged, event =>
this.redoStackChanged.emit(event)
);
this.editorInstance.on(editorEvents.textEditing, () =>
this.textEditing.emit()
);
this.editorInstance.on(editorEvents.undoStackChanged, event =>
this.undoStackChanged.emit(event)
);
}
private removeEventListeners() {
(this.editorInstance).off(editorEvents.addText);
(this.editorInstance).off(editorEvents.mousedown);
(this.editorInstance).off(editorEvents.objectActivated);
(this.editorInstance).off(editorEvents.objectMoved);
(this.editorInstance).off(editorEvents.objectScaled);
(this.editorInstance).off(editorEvents.redoStackChanged);
(this.editorInstance).off(editorEvents.textEditing);
(this.editorInstance).off(editorEvents.undoStackChanged);
}
}
`


Invariant Violation: Native component for "RCT3DScnModelView" does not exist

I have just setup this library with the latest version of React Native. And I am using the given example to run the project. Why is this issue coming ?

Hello! Seems like you haven't linked the library to your project. Please follow the instructions here: https://facebook.github.io/react-native/docs/linking-libraries-ios.html


Backing store for kseg0_enabled bits

See discussion in #35.

Looks great; I'll accept this on the next stream, thanks!

Tiny changes are a-ok. Style should be correct now.

cool, thanks again :)


Update annoyance-mute

Updated to include new Hunllef sounds. Original project hasn't been updated in 2+ years, so I forked it and am gonna try to maintain it now.

@Broooklyn is still around, you should be able to pr to their repo.


Parallelize append_mod_tags.py

👋 ,
I made these changes to the script to account for scenarios where an aggregate methylation dictionary is 50GB+.

Ditch the use of dictionary because holding it in memory will severely cripple the node in the example I use multiple workers. Using database instead.

Please feed the script:

8 or 16 threads, the more the merrier.
Give it at least 250Gb of disk space 🙈

Great work @projectoriented


Add validation module for easy to apply validation rules

Add a module that includes several functions that will add pre-defined validation to entry type widgets. These methods will accept the widget object as an argument and will make the validation api of the tkinter widgets much easier to apply.
A mask could be applied through some pattern... regex, or something else.
When the widget is in an invalid state, the border is set to the 'danger' color.
Some possible examples:
def validate_text(obj, when='focusout', func=None, mask=None):
    ...

def validate_number(obj, when='focusout', func=None):
    ...

def validate_phone_number(obj, when='focusout', func=None, mask="(000)000-000"):
    ...

def validate_date(obj, when='focusout', func=None, mask="%Y-%m-%d"):
    ...

entry = ttk.Entry()
validate_phone_number(entry, func=None)

reference: https://tcl.tk/man/tcl8.6/TkCmd/ttk_entry.htm#M34
when options include key, focus, focusin, focusout, all
func is called whenever the validation occurs

Consider applying this to Tableview per https://github.com/israel-dryer/ttkbootstrap/issues/114#issuecomment-1004474556


Carbon::setHolidays() results in Undefined offset: 0

Changing the test to:
public function testSetHoliday()
    {
        $carbon = new Carbon();
        $carbon = Carbon::create(2021, 7, 4);
        $carbon->setHolidays(['Christmas Day']);

        $this->assertFalse($carbon->isHoliday());

        $carbon = new Carbon();
        $carbon = Carbon::create(2021, 12, 25);
        $carbon->setHolidays(['Christmas Day']);

        $this->assertTrue($carbon->isHoliday());
    }

illustrates this issue

Thanks for finding and fixing this bug!


Add proper sensors

It would be nice if proper sensors would be generated for each integration hat contains the calculated color and brightness of the integration.
This value can then be used for template values in scenes and automations.

Can you not already do this by just reading the attributes of the main adaptive-lighting switch? It will update its attributes with the last adapt call data after each interval
Adaptive-lighting exposes the following attributes in its switch:
brightness_pct: 1
color_temp_kelvin: 1000
color_temp_mired: 1000
rgb_color:
  - 255
  - 56
  - 0
xy_color:
  - 0.682
  - 0.315
hs_color:
  - 13.882
  - 100
sun_position: -0.7199188750393026


imagesize module alternative

Any chance you'd be willing to use https://github.com/image-size/image-size instead of the existing imagesize module?  Switching to that one would support width/height from SVGs by using the viewbox values if width/height aren't specified.

Thanks for this issue! Now i use image-size.

Awesome - thanks!  Works perfectly now without having to supply width/height for SVGs.


feat: strip attributes outside of cargo-expand

Changes

Inject a special #[cfg] only when running cargo-expand to preserve FRB attributes
Preserve token span information

Closes #1488
Checklist

[x] An issue to be fixed by this PR is listed above.
[ ] New tests are added to ensure new features are working. Please refer to this page to see how to add a test.
[ ] ./frb_internal precommit --mode slow (or fast) is run (it internal runs code generator, does auto formatting, etc).
[ ] If this PR adds/changes features, documentations (in the ./website folder) are updated.
[ ] CI is passing. Please refer to this page to see how to solve a failed CI.

Remark for PR creator

./frb_internal --help shows utilities for development.
If fzyzcjy does not reply for a few days, maybe he just did not see it, so please ping him.

I've been having difficulties running precommit as it keeps deleting everything inside flutter_via_create/integrate, wonder if it's intermittent or something more serious that needs fixing.

I've been having difficulties running precommit as it keeps deleting everything inside flutter_via_create/integrate, wonder if it's intermittent or something more serious that needs fixing.

Curently the precommit slow logic contains:

precommit-generate to run codegen for every package
precommit-integrate to run flutter_rust_bridge_codegen create/integrate for flutter_via_create/integrate, which deletes the folder and copy-paste-modify the internal templates into the folder

Thus, if the template is outdated, it will be pasted and override the newly generated thing...
This is suboptimal and maybe we can improve it, what do you think?

Thus, if the template is outdated, it will be pasted and override the newly generated thing...

Interesting, will check tomorrow what might make the template be outdated.


Release 1.0.9 - Desktop wallet - offline transaction issue

Offline transaction for the latest dev merged build 1.0.9 release is not working.

Steps to reproduce

Login to any available account and log out
click the Go to offline transaction link
You could see the error/warning (screenshot 1)
then create a new profile and click the offline transaction
select the newly created account from the drop down
the error message disappears but other input fields and way to proceed is missing (screenshot 2


Working fix: enables simultaneous operation of cam and gripper

Just wanted to offer a working fix (so far) for anyone with a similar issue/setup consisting of an arm with a robotiq wrist cam and gripper running kinetic/16.04 Ubuntu. I was having some issues where the gripper driver kept crashing while having the wrist camera stream running which was resolved by adding a couple lines as shown here.

Thanks, this is indeed a simple and working patch that could be useful for some users!

@jproberge glad you found it useful.
I have another fix that someone might find useful for an alternate setup where the above fix didn't work.
I have a laptop which I use for all the algorithmic development in moveit, etc. The robot is hooked up to a separate PC  which is accessible over ssh (Since we share the robot in our lab, it keeps things nice and modular for people to test their work). For such a setup, the fixes in this link helped me have a mostly reliable operation of gripper and cam but it is not super robust. Usually restarting the drivers usually fixes it. Here is the fix: https://github.com/angadhn/starboy_hardware_ws/commit/8630cedadd7494968bfc5d73b1871e88fdf2272b

psuhed another bit of the fix that I'd forgotten to do a while back. https://github.com/angadhn/starboy_hardware_ws/commit/7d4fdf5007b1962f1b20118bd314afacfda2c4e9

Am I too late to say that the links for those commits show a "404 page not found" error? I am working on the same setup except for the fact that I am using a ur5 which I can access over ssh as well. @angadhn can you kindly enlighten me how to access the ft-300 sensor values and the camera stream in rviz?


Update upp-env packages

Summary
This PR adds ip and prod-util to the UPP env.
Testing
none
Applications affected
UPP
Systems affected
n/a
Dependencies
none
Issue(s) addressed
none
Checklist

[x] This PR addresses one issue/problem/enhancement, or has a very good reason for not doing so.
[x] These changes have been tested on the affected systems and applications.
[x] All dependency PRs/issues have been resolved and this PR can be merged.

I think we tested this with the chained upp-env that we installed on several platforms. Please add reviewers when you think it's good to go and we can get it in. Thanks!

This is good to go.


class dalvik.system.VMRuntime has<PHONE_NUMBER> methods

Works pretty decent on my demo,but crashed when moving to my project.   Log shows : class dalvik.system.VMRuntime has<PHONE_NUMBER> methods.

care to tell me why？

cannot


Perf-Test: Token transfer has already been recorded

During a performance test of broadcasts, private messages, and tokens, each at 10 tx/sec, the following two errors were encountered ~2 hours into the test:

Token transfer '47629.0.39' has already been recorded - ignoring (Logged here in FF)
WS ws://tokens_0:3000/api/ws send failed: write tcp <IP_ADDRESS>:48548-\u003e<IP_ADDRESS>:3000: write: broken pipe (Logged here in wsclient package)

tokensError.log.zip

Seems like a transient issue that recovered (ie a websocket event was received twice before it could be successfully acked, and the duplicate was ignored). I can double-check the detailed logs to confirm though.

Ah so this one is benign: Token transfer '47629.0.39' has already been recorded - ignoring.
But this one, not so much: WS ws://tokens_0:3000/api/ws send failed
Looks like the websocket failed to send an ack for a token event and never retried. Consequently the connector just stopped delivering token events.

From the wsclient code, I'd expect WS %s send failed to be followed by a return from the sendLoop, which would trigger closing of the sendDone channel, which would trigger the case that causes the receiverLoop to log WS %s closing reader after send error. I do not see this log.

Should be fixed by #387

Running the test again, I'm still seeing ERROR WS ws://tokens_0:3000/api/ws send failed: write tcp <IP_ADDRESS>:57142-'<IP_ADDRESS>:3000: write: broken pipe pid=1\n","stream":"stderr","time":"2022-01-07T03:21:35.279279475Z"}
It appears that mints are still being confirmed, test workers are still able to proceed, but at a much slower rate:

mint.log.zip

Looks possibly better since the reader gets closed in this case (albeit much later than I'd expect)... I'll reopen to examine the new symptom.

After a closer look, it seems like the websocket connects successfully after each disconnect - so nothing immediately jumps out at me there. I do see a lot of transfer events per transaction - which possibly indicates a large quantity of NFTs being minted at once (and that's a very unoptimized path). Could you confirm if you were testing non-fungible tokens, and if so, maybe we should limit to 100 or so being minted at a time. Want to get a sane baseline before we stress it too much.


RFE: Adding array items with from the command line

I have a file values.yml that looks like this:
#@data/values
---
namespace: default
flavor: medium
disk: 10Gi
ssh_keys: []

I would like someone running ytt to be able to easily append values to the ssh_keys array from the command line (without having to write a YAML list inline).  I was envisioning something like this:
ytt -f template.yml \
  --data-value-file ssh_keys+=$HOME/.ssh/id_rsa_foo.pub \
  --data-value-file ssh_keys+=$HOME/.ssh/id_rsa_bar.pub

That is, use += to indicate "append to list", rather than trying to set a key on a mapping. Does that seem reasonable?

The command line I'm using right now looks something like this:
...--data-value-yaml ssh_keys="['$(cat id_rsa_foo.pub)', '$(cat id_rsa_bar.pub)']"
```

...and there's an awful lot of quoting going on there.

Reasons why this might be interesting:
I can drop ssh keys into a local directory keys/, and then write a Makefile like this:
KEYS = $(wildcard keys/*.pub)

something.yml: something.tmpl.yml
    ytt -f something.tmpl.yml $(patsubst %, --data-value-file+=%, $(KEYS))

Given directory contents like:
keys/
  id_rsa_foo.pub
  id_rsa_bar.pub

This would result in the command line:
ytt -f something.tmpl.yml --data-value-file+=keys/id_rsa_foo.pub --data-value-file+=keys/id_rsa_bar.pub

This ends up being a lot harder (read: "I have no idea") to accomplish with the current syntax.

Or maybe if you need to preserve the --option=value format because you're using a standard options processing library, maybe something like --data-value-file=+/path/to/file?

Thanks @larsks! That's an interesting idea.
Nice job getting the --data-value-yaml flow to work for your needs. The only other option that comes to mind for me here would be utilizing @overlay/apppend, but that would require a bit more work than what you're looking for...

i think if we would pursue idea of more complex operators for cmd line we should probably think about other types of operations. there is also a question of env variable control -- since you cannot use += in env vars.


Adding open graph message

Adding open graph message

Hi @gedeagas, looks good!
Did you happen to test it?

Hi @DiegoRBaquero since this update, I have added the Airline Boarding Pass, Airline Checkin, Airline Itinerary and Airline Flight Update but not yet pushed. I will test all the function today and as soon as the test is complete I will inform you again 😀

Alright, looking forward to it :)


More Datastore integration tests

One test was present but accidentally not run due to an attribute
being missing; when the attribute was added, it revealed an issue as
global queries can't require strong consistency (which transactions
implicitly have).
The other test was a validation around #288.

Rerunning Travis tests - I don't believe they're actually broken.

LGTM


Add address field to SourceLocation struct

:wave: Hello! I took a stab at a fix for an issue I've seen in my own crates, thanks for taking a look :smile:
Because address is used to determine if a line has been covered, this
commit's changes add address to the key used for maps of TracerData.
The gimli object used to describe line and path can be associated with multiple addresses
which resulted in scenarios where lines that were covered were missed
in the reports (because a TracerData associated with line and path, but
not the expected address, got to the map first).
In this commit, a test was added to the tests/data/matches crate to illustrate a
scenario that shows a line that was previously uncovered in reporting,
is now covered.
I was personally motivated by the match scenario the test crate changes describe, but I'm curious whether these changes result in any wins for coverage in issues like #136 or #262

For some context on what I mean about the potential for multiple addresses associated with TracerData for a single path and line, here are the candidates for TracerData from the test file modified in this PR. Before these changes, if there were multiple possibilities for a line, only one made it in (path was omitted as it was all the same lib.rs in this case).
line: 6
TracerData { trace_type: FunctionEntry(80), address: Some(4207952), length: 1, fn_name: Some("check_libtype_match") }

line: 8
TracerData { trace_type: Unknown, address: Some(4207965), length: 1, fn_name: None }

line: 7
TracerData { trace_type: Unknown, address: Some(4207978), length: 1, fn_name: None }

line: 7
TracerData { trace_type: Unknown, address: Some(4208000), length: 1, fn_name: None }

line: 8
TracerData { trace_type: Unknown, address: Some(4207980), length: 1, fn_name: None }

line: 9
TracerData { trace_type: Unknown, address: Some(4208002), length: 1, fn_name: None }

line: 11
TracerData { trace_type: Unknown, address: Some(4208022), length: 1, fn_name: None }

line: 11
TracerData { trace_type: FunctionEntry(177), address: Some(4208032), length: 1, fn_name: Some("check_match") }

line: 13
TracerData { trace_type: FunctionEntry(177), address: Some(4208032), length: 1, fn_name: Some("check_match") }

line: 14
TracerData { trace_type: Unknown, address: Some(4208090), length: 1, fn_name: None }

line: 14
TracerData { trace_type: Unknown, address: Some(4208155), length: 1, fn_name: None }

line: 14
TracerData { trace_type: Unknown, address: Some(4208166), length: 1, fn_name: None }

line: 14
TracerData { trace_type: Unknown, address: Some(4208188), length: 1, fn_name: None }

line: 15
TracerData { trace_type: Unknown, address: Some(4208041), length: 1, fn_name: None }

line: 15
TracerData { trace_type: Unknown, address: Some(4208146), length: 1, fn_name: None }

line: 16
TracerData { trace_type: Unknown, address: Some(4208081), length: 1, fn_name: None }

line: 16
TracerData { trace_type: Unknown, address: Some(4208124), length: 1, fn_name: None }

line: 17
TracerData { trace_type: Unknown, address: Some(4208157), length: 1, fn_name: None }

line: 18
TracerData { trace_type: Unknown, address: Some(4208092), length: 1, fn_name: None }

line: 18
TracerData { trace_type: Unknown, address: Some(4208168), length: 1, fn_name: None }

line: 19
TracerData { trace_type: Unknown, address: Some(4208190), length: 1, fn_name: None }

line: 21
TracerData { trace_type: Unknown, address: Some(4208199), length: 1, fn_name: None }

line: 21
TracerData { trace_type: Unknown, address: Some(4208209), length: 1, fn_name: None }

line: 23
TracerData { trace_type: FunctionEntry(115), address: Some(4208224), length: 1, fn_name: Some("destructuring_match") }

line: 24
TracerData { trace_type: Unknown, address: Some(4208236), length: 1, fn_name: None }

line: 24
TracerData { trace_type: Unknown, address: Some(4208269), length: 1, fn_name: None }

line: 24
TracerData { trace_type: Unknown, address: Some(4208279), length: 1, fn_name: None }

line: 24
TracerData { trace_type: Unknown, address: Some(4208289), length: 1, fn_name: None }

line: 25
TracerData { trace_type: Unknown, address: Some(4208252), length: 1, fn_name: None }

line: 25
TracerData { trace_type: Unknown, address: Some(4208326), length: 1, fn_name: None }

line: 26
TracerData { trace_type: Unknown, address: Some(4208261), length: 1, fn_name: None }

line: 26
TracerData { trace_type: Unknown, address: Some(4208291), length: 1, fn_name: None }

line: 27
TracerData { trace_type: Unknown, address: Some(4208271), length: 1, fn_name: None }

line: 27
TracerData { trace_type: Unknown, address: Some(4208317), length: 1, fn_name: None }

line: 28
TracerData { trace_type: Unknown, address: Some(4208281), length: 1, fn_name: None }

line: 30
TracerData { trace_type: Unknown, address: Some(4208334), length: 1, fn_name: None }

line: 30
TracerData { trace_type: Unknown, address: Some(4208339), length: 1, fn_name: None }

line: 37
TracerData { trace_type: TestEntry(17), address: Some(4208448), length: 1, fn_name: Some("{{closure}}") }

line: 37
TracerData { trace_type: Unknown, address: Some(4208453), length: 1, fn_name: None }

line: 37
TracerData { trace_type: TestEntry(183), address: Some(4207760), length: 1, fn_name: Some("it_works") }

line: 38
TracerData { trace_type: Unknown, address: Some(4207764), length: 1, fn_name: None }

line: 39
TracerData { trace_type: Unknown, address: Some(4207797), length: 1, fn_name: None }

line: 41
TracerData { trace_type: Unknown, address: Some(4207834), length: 1, fn_name: None }

line: 42
TracerData { trace_type: Unknown, address: Some(4207839), length: 1, fn_name: None }

line: 43
TracerData { trace_type: Unknown, address: Some(4207849), length: 1, fn_name: None }

line: 44
TracerData { trace_type: Unknown, address: Some(4207859), length: 1, fn_name: None }

line: 45
TracerData { trace_type: Unknown, address: Some(4207869), length: 1, fn_name: None }

line: 47
TracerData { trace_type: Unknown, address: Some(4207879), length: 1, fn_name: None }

line: 48
TracerData { trace_type: Unknown, address: Some(4207894), length: 1, fn_name: None }

line: 49
TracerData { trace_type: Unknown, address: Some(4207909), length: 1, fn_name: None }

line: 50
TracerData { trace_type: Unknown, address: Some(4207923), length: 1, fn_name: None }

line: 51
TracerData { trace_type: Unknown, address: Some(4207938), length: 1, fn_name: None }

line: 51
TracerData { trace_type: Unknown, address: Some(4207943), length: 1, fn_name: None }

line: 51
TracerData { trace_type: Unknown, address: Some(4208463), length: 1, fn_name: None }

line: 51
TracerData { trace_type: Unknown, address: Some(4208465), length: 1, fn_name: None }

Just poking around a little, after these changes it looks like the a couple ignored tests (method_calls_expr_coverage and futures_coverage) pass.

So the GitHub pr view in the app is kinda bad so I can't see what you branched off. But have you tried the latest stuff I committed in develop which also fixed the coverage for method calls and the futures test?
It sounds like we might have done the same thing albeit in different ways

I'll have a proper look when I'm next at my pc 😊

I branched off current develop and yep the futures tests pass there already :upside_down_face:. The method_calls_expr_coverage tests are still failing on develop for me though.

Ah that's because I'm a muppet who forgets to push his changes!
So I took a slightly different approach and stored the location the same way but made  a list of traces with all the addresses as the value. I did that because I wrote some test to see how the TraceMap amount_coverable and amount_covered seemed thrown off by two traces with the same location in the structure so I was concerned it might cause issues in some parts of the report module. But that could have always been me not trusting myself :sweat_smile:

Ohh haha, okay! I'm happy a fix made it in :)

The test for matches is still useful :smile: if you want to submit that as another PR

Oh haha, yeah I can for sure!
On Sun, Feb 16, 2020 at 3:32 PM xd009642<EMAIL_ADDRESS>wrote:

The test for matches is still useful 😄 if you want to submit that as
another PR
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/xd009642/tarpaulin/pull/347?email_source=notifications&email_token=ABKZDXSD2LNQC2SQGOPRTCTRDHEHJA5CNFSM4KWAFOX2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4V7CI#issuecomment-586768265,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABKZDXRMN4TFTWCZJGIEKBLRDHEHJANCNFSM4KWAFOXQ
.


shallow-renderer

@klymenkoo, @mihilbabin previous suggestions were fixed. Please review once more.

Looks good, thank you @ApolllonDev


Made source_get_offset return float to allow precise AL_SEC_OFFSET

Hello. I'm not an expert in OpenAL, but using your library I found that calling alGetSourcef with AL_SEC_OFFSET returns only second-precise values, although according to specs it should be supporting fractional values too.
It looks like this small change is enough to fix it.
PS. _alGetSourceiv already converting the result value to int here, so that should stay correct:
https://github.com/icculus/mojoAL/blob/44bb6799215238986d12ffa1d85ee49f24a2ccad/mojoal.c#L3742

Your fix is correct, and I just fixed this myself a few days ago (and hadn't merged it back to the main repository yet; I apologize that I caused a duplication of effort here).
That fix is in 9225d377719678415b0437e2c7a4955aeec386ad.

Oh, good to know, no problem.


Complete rework of README.md

Converted full file to markdown
Added instructions for all of the steps required to use the integration in HA. I did this make it more clear for others because I had trouble figuring it out on my own.
Should resolve Issue #3

Thank you, it clearly explains how the integration works.
I just have three comments before approving it:

The "requirements" are right since there is today only one category of sensor (upcomming) corresponding to the upcomming media card. However I am planning to create more kind of sensors depending of the users needs. (Just to make things clear)
Converting the full file to markdown is a good idea, however, I did this for a particular reason. I want the header to be horizontally centered and we can't do that using only markdown.
Why did you remove the emojis ?

The last two points are important to me because I want to keep consistency with my other home assistant libraries (https://github.com/dylandoamaral/uptime-card). If this is a problem then we will have to make a new PR for each repositories.

@dylandoamaral, feel free to edit my PR as you see fit.

That's perfect thank you very much 😀
Close #3


about the integration of sepal_ui in the CD/CI process

Context
between the 9/06/2021 and 10/06/2021 a major migration of sepal_ui was deployed (v1.5 -> v2.0). As the number of application based on the framework is already important (17) and still growing i tried my best to prepare the integration in advance:

sepal_ui is covered at more that 80% to avoid regression problem
the sepal_ui version number is in a separated file (https://github.com/openforis/sepal/blob/master/modules/sandbox/docker/script/init_sepal_ui.sh) triggering a new build every time it's changed
sepal_ui based application can be wired to the prod environment through a cron job

What we did

update all master/main branch of every application to make them work with the latest version of sepal_ui
update the version in sepal master branch
deploy on prod
merge every module master branch to the release one (wire to the prod env via the cron job)

What happened

as the folder storing the app from the app/dashboard is protected, one of the function from a third party lib (geemap) was failing, making it impossible to select an AOI in ALL applications during 6h
Some application were integrated without following the check list, meaning that there were no documentation nor release branch.
some application that wasn't wired to the cron job were not updated in the process

Conclusion
As the number of app is still growing I think we shloud change the integration process of sepal_ui to avoid the discontinuity of the service (lucky for us the solution was found in less than 1h but it could have been catastrophic).

make the check-list compulsory.

[x] Enforce the documentation file at least in english. People never write down documentation after (I wrote 10 of them during the migration process).
[x] Enforce the release branch and its wiring to the cron job. I'm modifying the sepalizer function to make sure that the branch is created.

[x] repair the cron job of the test environment. It will allow us to deploy pre-release and test them on the master/main branch of the modules, avoiding to break the prod env.

let me know what you think

App devs are lazy (me included) and they are lying when they open a new issue relative to module, saying that requirements and documentation is ready when that's not the case. I would like to make the checklist non mutable for the OP. I'm thinking of a bot that would recognize the template and create a message including the checklist that only the owner of this repo could modify.
Not sure yet how to proceed but to avoid to have non-documented and/or non-working app on prod, that's good enough.

We could consider adding a health check script that get executed after SEPAL pulls an update to the app. If it fails, the app could be automatically disabled and the app author could get a notification email.
It wouldn’t catch all potential issues, but hopefully at least lowers the chance of our users running into broken apps.


feat: bracketed paste

First 3 commits from #568, #569 and #570.
Partial fix to #404
This introduces support for input via bracketed paste, where escape
characters in the pasted input are not interpreted.
Pasted input are marked as a special field in the KeyMsg.
This is because pasted input may need sanitation in individual widgets.
cc @maaslalani @muesli

As discussed with @muesli I changed the PR to always enable bracked paste, unless the option WithoutBracketedPaste is specified on the program.

Rebased to avoid conflict.

Rebasing.

I think this code will be simplified / become clearer if we implement it on top of #511.

@muesli this is ready again.

@muesli in case you haven't found it already, this patch has a shortcoming: certain terminal emulators feed the pasted datas as non-continuous writes to the terminal buffer, so the bubbletea code can sometimes read less than len(buf) before the paste end marker is encountered.
I will iterate and submit a better version.

I have added a commit on top of the original branch. @muesli you can look at just the diff for the latest commit to see what you need to change on your branch.

Bumping. I have a use-case similar to #800 and would love to be able to detect ctrl+enter, but AFAIK this PR is what would solve that.

@xprnio actually, what you want for shift+enter is #869. Will also comment on that issue.

Please merge this!


Document perf regression of 1.5

There is a noticeable regression in 1.5 that was fixed in 1.7 (and possibly 1.6).
This should be documented (with links to bugs) on knative.dev so users are aware.

cc @ZhiminXiang @JRBANCEL hopefully this should be done before doc release

What details are you expecting?
We should just recommend using 1.7.x, no?

Yes, at the minimum we should advise 1.7. But mentioning that 1.5, 1.6 work but not well & links to issue would be awesome too.


docs/rancher *: Add docs about deploy radondb mysql on rancher #338

What type of PR is this?

/documentation
/enhancement
Which issue(s) this PR fixes?

Fixes #338
What this PR does?
Summary:
Special notes for your reviewer?
@andyli029 @runkecheng @KID-G @qianfen2021 @acekingke

LGTM.


use NetworkOptions to configure CA root certificate locations

Codecov Report

Merging #66 (9474ae6) into master (f08c0c8) will decrease coverage by 0.69%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #66      +/-   ##
==========================================
- Coverage   91.28%   90.58%   -0.70%
==========================================
  Files           5        5
  Lines         367      361       -6
==========================================
- Hits          335      327       -8
- Misses         32       34       +2

Impacted Files
Coverage Δ

src/Curl/Curl.jl
100.00% <ø> (ø)

src/Curl/Easy.jl
92.80% <100.00%> (+0.66%)
:arrow_up:

src/Downloads.jl
83.11% <100.00%> (+2.10%)
:arrow_up:

src/Curl/Multi.jl
90.82% <0.00%> (-4.67%)
:arrow_down:

src/Curl/utils.jl
96.87% <0.00%> (-0.10%)
:arrow_down:

Continue to review full report at Codecov.

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


wrong input at city var

   Person p = new Person("John", "Quincy", "Adams", "Boston", "MA");
   var (fName, _, city, _) = p;// city = "Adams"

should be
Person p = new Person("John", "Quincy", "Adams", "Boston", "MA");
var (fName, _, _, city, _) = p;// city = "Boston

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8047b417-55af-c6df-9333-f1e1c428e594
Version Independent ID: 8bcc16bb-c2d8-0b6d-af20-6958964efe9e
Content: Discards - C# Guide
Content Source: docs/csharp/discards.md
Product: dotnet-csharp
GitHub Login: @rpetrusha
Microsoft Alias: ronpet

Thanks for your feedback @ibm5155 but the code is correct.
It uses the Deconstruct method with 4 parameters:
public void Deconstruct(out string fname, out string lname,
                           out string city, out string state)

So your change wouldn't even compile without adding a Deconstruct that looks like this:
    public void Deconstruct(out string fname, out string mname, out string lname,
                            out string city, out string state)
    {
        fname = FirstName;
        mname = MiddleName;
        lname = LastName;
        city = City;
        state = State;
    }

I hope this helps!


Creating a filter based on metadata.ownerReferences.kind == Statefulset

Question

I'm trying to figure out how to create a filter that only acts on pods that are part of a statefulset.  Ultimately I want to create a nodeport service for each pod in the statefulset and delete that nodeport service when the pod is deleted.

I'm currently using the following:
@kopf.on.create('', 'v1', 'pods', when=lambda meta, **_: meta.get('ownerReferences.kind')=='StatefulSet')
def create_fn(meta, spec, namespace, logger, **kwargs):
    logging.info(meta, spec, namespace)

def my_handler(meta, **_):
    pass

Checklist

[x] I have read the documentation and searched there for the problem
[x] I have searched in the GitHub Issues for similar questions

Keywords
filter, pod

Didn't realize meta was a Dict.  Closing.


CLI Fix: Fall back to cwd when no project root is found

title says it all
to test:
this should cause an error
cd ~
mkdir meh
cd meh
npx @fiberplane/studio@latest

repeat the process with the pkg from this PR, and it should not error
pnpx https://pkg.pr.new/fiberplane/fpx/@fiberplane/studio@207

tested locally


Cursor doesn't always follow line indentation

If you start a new block of code, the cursor auto indents when you create a line break (new line) for the body of the block e.g
class Test {

}

Here the opening curly brace of the block is followed by two line breaks before the closing brace.
If you arrow up now, the cursor doesn't stay inline with the indentation, but jumps to the beginning of the previous line.
The behaviour is the same using this code style too
class Test
{
    // Some comment huh

}

Looking at the settings page and searching for 'cursor', there is not an option to change this behaviour from what I can see.
I work with C# but presume this happens in other languages, and wanted to know if this is a bug or if I'm doing something wrong.
Possibly irrelevant, but I don't see this in other IDEs I use such as IntelliJ where the cursor always follows line indentation when moving between lines.
Thanks.

This is the setting "editor.trimAutoWhitespace". From your description, it appears that you want the automatic whitespace inserted by the editor to be kept, so simply configure that to "editor.trimAutoWhitespace": false.


h2childchan: Channel Options

This issue is to track the channel options that HTTP/2 child channels need (yet) to support (as they are part of ChannelConfig).

[x] ALLOCATOR
[x] AUTO_READ
[x] AUTO_CLOSE - deprecated, but supported (via AbstractChannel).
[ ] CONNECT_TIMEOUT_MILLIS - See #5752
[x] MAX_MESSAGES_PER_READ
[x] MESSAGE_SIZE_ESTIMATOR - #5747 adds its own.
[x] RCVBUF_ALLOCATOR - that one's kind of useless for our purposes, as we don't allocate ByteBufs on read. Afaik we are currently only using it for MAX_MESSAGES_PER_READ.
[ ] WRITE_BUFFER_WATER_MARK - #5747 uses this option for the flow control. That interacts nicely with the ChannelOutboundBuffer, as well as Channel.bytesUntil(Un)Writable(). Low and high watermark are always equal. A user can access the watermark via a getter, but not set it.
[ ] WRITE_SPIN_COUNT - Useless for our purposes?

Issue #3667 also mentions the option ALLOW_HALF_CLOSURE. We are carrying END_STREAM on the Http2StreamFrame objects. I don't think we need it.
I would suggest for options that are not useful for the H2 child channel, the setter methods should just be noops and log a warning saying that they have no effect. Thoughts?
cc: @ejona86

@buchgr why not throw an exception if someone tries to use options that are not supported ?

@normanmaurer I considered it, but thought it's not legal due to the ChannelConfig interface?

@buchgr RuntimeException does not need throws clause on method signature. But users may not like it.

@buchgr well I am a bit on the fence here... Often I think it is better to throw and not ignore. At least this will be very clear ;)

@shiluotang I was refering to  All {@link ChannelConfig} has the following options:
@normanmaurer I am fine with UnsupportedOperationException if you are :-)

Lets do it :)

On 01 Sep 2016, at 13:18, Jakob Buchgraber<EMAIL_ADDRESS>wrote:
@shiluotang https://github.com/shiluotang I was refering to All {@link ChannelConfig} has the following options:
@normanmaurer https://github.com/normanmaurer I am fine with UnsupportedOperationException if you are :-)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/netty/netty/issues/5753#issuecomment-244049476, or mute the thread https://github.com/notifications/unsubscribe-auth/AAa0QsnHIrkXwvkhohw9KFl47jsvPuE8ks5qlrSPgaJpZM4Jt16r.

Issue #3667 also mentions the option ALLOW_HALF_CLOSURE. We are carrying END_STREAM on the Http2StreamFrame objects. I don't think we need it.

Do consider the case where someone is using HTTP/1 messages and it is being converted to HTTP/2. I agree that the converter could convert the close() to a DATA(EOS=true), though. But it may be better to have the channel work "like normal". The half close part was not a big deal, but there were details that seemed like we should dig into them.

@ejona86
Interesting. So you are saying that if ALLOW_HALF_CLOSURE is enabled and close() is called on a child channel, the child channel and stream shouldn't be closed but a DATA(EOS=true) should be sent?  If ALLOW_HALF_CLOSURE is disabled and close() is called, the stream should be closed via a RST_STREAM?


ovs: add support for port trunks

This commit adds support for the "trunk-tags" property in ovs ports.
Example:
  - name: ovs0
    type: ovs-interface
    state: up
  - name: ovs-br0
    type: ovs-bridge
    state: up
    bridge:
      port:
        - name: ovs0
          vlan:
            mode: trunk
            trunk-tags:
              - id-range:
                  min: 20
                  max: 22
              - id-range:
                  min: 30
                  max: 32
              - id: 40

The property is implemented in NM via "ovs-port.trunks" and corresponds to the "trunks" property of ports in ovs:
    Bridge ovs-br0
        Port ovs0
            trunks: [20, 21, 22, 30, 31, 32, 40]
            Interface ovs0
                type: internal

The NM part is at:
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1467

https://github.com/nmstate/nmstate/pull/2117 this needs to be merged before :-)

Please include test case proving the trunk vlan tags can be purged.

Sure, what do you mean exactly? That other trunk vlans should already exist before applying the state (and then, check they are removed), or that I should apply first a state with trunks and then one without?
Any example of that in the existing code?

Please include test case proving the trunk vlan tags can be purged.

Sure, what do you mean exactly? That other trunk vlans should already exist before applying the state (and then, check they are removed), or that I should apply first a state with trunks and then one without?

Usually we test that the user can configure the trunk vlans and then drop them. I think it is fine if you apply a state with the trunk vlans and then one with them empty. Of course the test must check they have been dropped.

Any example of that in the existing code?

Check test/integration/bond_test.py line 119 should contain test_add_and_remove_bond_with_two_port test. Of course, this is testing something else but the structure is similar. Thank you!

@ffmancera: thanks, I changed the test to also check for trunks removal. How does it look?

In addition, please modify test_add_remove_ovs_bridge_vlan to use assert_state_match instead of assert_state, the difference is that assert_state will do a plain == but assert_state_match passes if the desired state is a subset of the current one.
As now trunks is supported for ovs bridges, the current state in that example will contain trunks: [] which is correct but that property is not present in the desired state.. so it should use assert_state_match.
Thank you!

I have split the test and added explicit checks for the the number of trunks.