go mod: update grpc module to latest 1.59.0

See https://github.com/grpc/grpc-go/pull/645

This change is

I'm definitely in favor of updating, but this first needs to be fully reconciled with https://github.com/gazette/core/pull/335
I don't have a handle on the API changes for gRPC balancers or the implications of updating, and need to verify all that first.

Changelog from 1.40.0 to 1.59.0 with notable behaviour changes:

1.41.0

balancer: SubConns no longer automatically reconnect after READY; instead they transition to IDLE on connection loss (https://github.com/grpc/grpc-go/pull/4613)

this change is already addressed by https://github.com/gazette/core/pull/335

1.42.0
1.43.0
1.44.0
1.45.0
1.46.0

client: change connectivity state to TransientFailure in pick_first LB policy when all addresses are removed (https://github.com/grpc/grpc-go/pull/5274)

This is a minor change that brings grpc-go's behavior in line with the intended behavior and how C and Java behave.

1.47.0
1.48.0
1.49.0
1.50.0
1.51.0
1.52.0
1.53.0
1.54.0
1.55.0
1.56.0
1.57.0
1.58.0

balancer: add StateListener to NewSubConnOptions for SubConn state updates and deprecate Balancer.UpdateSubConnState (https://github.com/grpc/grpc-go/pull/6481)

UpdateSubConnState will be deleted in the future.

balancer: add SubConn.Shutdown and deprecate Balancer.RemoveSubConn (https://github.com/grpc/grpc-go/pull/6493)

RemoveSubConn will be deleted in the future.

resolver: remove deprecated AddressType (https://github.com/grpc/grpc-go/pull/6451)

This was previously used as a signal to enable the "grpclb" load balancing policy, and to pass LB addresses to the policy. Instead, balancer/grpclb/state.Set() should be used to add these addresses to the name resolver's output. The built-in "dns" name resolver already does this.
resolver: add new field Endpoints to State and deprecate Addresses (https://github.com/grpc/grpc-go/pull/6471)
Addresses will be deleted in the future.
See https://github.com/grpc/grpc-go/issues/6472 for more details about these changes

[1.59.0]


Remove Directgov Businesslink branding

:hocho: :hocho: :hocho:
https://www.agileplannerapp.com/boards/105200/cards/9078
Linked to:
https://github.com/alphagov/static/pull/518
https://github.com/alphagov/whitehall/pull/1935

:hocho: :+1:

Do we need to wait for anything before merging this? Or can I just merge?

@bradleywright mergeable as is :)

Can we also remove the image assets ( 1, 2, 3, 4 )  please.


Multiple actions with batch_key=True passed into a env.Command run non-batched

Describe the bug
When I have multiple env.Action(action_func, batch_key=True) statements inside of a
env.Command(target=t, source=s, action=[env.Action(action_func, batch_key=True), env.Action(action_func, batch_key=True)])

the Command will run them  as if they were never batched (i.e. batch_key=False).
Required information

Link to SCons Users thread discussing your issue.
Discussed in discord

Version of SCons
3.1.2

Version of Python
2.7.16

Which python distribution if applicable (python.org, cygwin, anaconda, macports, brew,etc)
pip

How you installed SCons
pip install scons --user

What Platform are you on? (Linux/Windows and which version)
Mac OS

How to reproduce your issue?  Please include a small self contained reproducer. Likely a SConstruct should do for most issues.

https://gist.github.com/zamN/84b461aaa702722df33042a82cb97367
@bdbaddog  workaround: https://gist.github.com/bdbaddog/90f7fbc253c9363648191227850059b6#file-batch-py-L17

How you invoke scons (The command line you're using "scons --flags some_arguments")
scons

My alteration to the reproducer and a patch:
90f7fbc253c9363648191227850059b6-f1bf47c613a7988942294926131a1327a6f25249.zip


Specify "from" parameter in Graphite checks

We have "events" in Graphite that I'd like to sum up using hitcount, but this relies on a certain requested interval.  I see Cabot uses 10 minutes as the default, but it would be great if we could specify our own "from" parameter so Graphite would return the correct event count for this period.
For instance, this is our graph with "from=-10min":

and this is it with "from=-4h":

The second image has the answer I'm looking for, which is 10 events in the last hour.
Thanks!

I'd love the ability to specify the "from" parameter for each check.
I have some checks that require aggregation with 1 day buckets, and some with 3 days and 7 days, so just one single from value will not work.

Is this issue resolved? I still have the same issue. I tried changing the graphite check to timeShift metric as well. It did not pull metrics for the configured timeShift.


VSCODE not recognising relative file paths in the terminal output

VSCode Version: 1.35.1
OS Version: windows 7

Steps to Reproduce:

Create sample project folder
Create two folders inside the project folder DIR1 and DIR2
Create a workspace inside one of the folders created in DIR1
Create a file Test.txt in the other folder created in DIR2
5 Add the project folder (1) into the workspace.
6 Create a tasks.json file in a .vscode folder inside the directory created in (1) containing:
{
"version": "2.0.0",
"tasks":
[
{
"label": "BUILD ",
"type": "shell",
"command": "echo DIR_2\Test.txt",
"options": {
"cwd": "${workspaceFolder}" /* The workspace folder is the same folder as the workspace file */
},
"group": "build",
"problemMatcher": {"base": "$gcc", "fileLocation": ["relative", "${workspaceRoot}"]
}
]
}

Does this issue occur when all extensions are disabled?: Yes
This is a simplified project to show the issue.  I am currently working on two C projects, and in one the links work.  In the other the links don't work no matter what I try.  There appears to be some issue with how vscode is parsing the links.

duplicate of #69403

Thanks, sorry that it's a duplicate. Just found it odd that it works for one project but not for others, which used to the best of my knowledge identical vscode setups.

Hi I have been doing some more testing over the weekend with the insiders version 1.36.0.
I have found that the issue seems to be fixed on both linux and windows.
However, I came back to work and found that the issue was still present on my windows 7 machine.  I did some more digging and realized that the link detection algorithm does not work when there are any spaces in the file path from C: to my workspace folder.  Basically if there are no spaces it works fine, if there are any at all it does not.  Perhaps this could be an improvement for the future.

There is an issue that shows all the link detection problems so far and it looks like the spaces issue is noted there: https://github.com/microsoft/vscode/issues/21125
@Tyriar fyi.


CMS_add1_signer doesn't set signatureAlgorithm and it leads to fail with BIO_new_CMS scenario of cms creation.

openssl version 3.0.2
Hi! I noticed some problems of using CMS signing with BIO_new_CMS function. While I write data to returned bio I get an error from here, while openssl tries to encode signature algorithm in Signer Info.
In my opinion the root of the problem is that signatureAlgorithm isn't set inside CMS_add1_signer function. What do you think about adding this functionality, for example like that:
diff --git a/crypto/cms/cms_sd.c b/crypto/cms/cms_sd.c
index 34c021bba6..3f730f4a2e 100644
--- a/crypto/cms/cms_sd.c
+++ b/crypto/cms/cms_sd.c
@@ -478,6 +478,10 @@ CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,
         }
     }

+    /* Set SignerInfo algorithm details if we used custom parameter */
+    if (si->pctx && !cms_sd_asn1_ctrl(si, 0))
+        goto err;
+
     if (!sd->signerInfos)
         sd->signerInfos = sk_CMS_SignerInfo_new_null();
     if (!sd->signerInfos || !sk_CMS_SignerInfo_push(sd->signerInfos, si))

Also I cut out problem part from my code to provide you small example for problem reproducing:
    unsigned int flags = CMS_STREAM | CMS_BINARY;
    CMS_ContentInfo* cms = CMS_sign(signerCert, NULL, NULL, NULL, flags)
    if (!cms)
        return 1;

    // Here is signatureAlgorithm actually isn't set
    CMS_SignerInfo* si = CMS_add1_signer(cms, signerCert, pkey, NULL, flags | CMS_KEY_PARAM);
    if (!si)
        return 1;

    for (int i = 0; i < sk_X509_num(certs); ++i) {
        if (!CMS_add1_cert(cms, sk_X509_value(certs, i))) {
            auto err = ERR_get_error();
            if (ERR_LIB_CMS == ERR_GET_LIB(err) && CMS_R_CERTIFICATE_ALREADY_PRESENT == ERR_GET_REASON(err))
                continue;

            return 1;
        }
    }

    BIO* outputBio = BIO_new(BIO_s_mem());
    if (!outputBio)
        return 1;

     BIO* cmsBio = BIO_new_CMS(outputBio, cms);
    if (!cmsBio)
        return 1;

    while (dataLen) {
        // got an error. Of encoding to ASN.1 here
        int r = BIO_write(cmsBio, data, dataLen);
        if (r <= 0)
            return 1;
        data += r;
        dataLen -= r;
    }

    if (!BIO_flush(cmsBio))
        return 1;

    uint8_t* pCms = NULL;
    int cmsLen = 0;
    unsigned char * encodedCms = NULL;

    cmsLen = BIO_get_mem_data(outputBio, &pCms);
    if (cmsLen < 0)
            return 1;
    }

Is this a regression in 3.0? I.E., did it work for you on 1.1.1?

It worked at openssl 1.1.1 because there is no check of returned value at this place. But if it's were  there would be the error too.

marking as inactive, to be closed at the end of 3.4 dev barring further input


Gh 908 fix update gaffer typo

Related Issue

Resolve #908

Codecov Report

:exclamation: No coverage uploaded for pull request base (develop@af5f791). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop     #909   +/-   ##
==========================================
  Coverage           ?   56.10%
  Complexity         ?        6
==========================================
  Files              ?       16
  Lines              ?      508
  Branches           ?       36
==========================================
  Hits               ?      285
  Misses             ?      204
  Partials           ?       19

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 af5f791...61cbfe6. Read the comment docs.


[trivial] Fix bracing style in std.traits

@quickfur looks like a transient error on the doc builder, please force push

Force push isn't doing anything, because my branch is already up-to-date. Any other way to kick the autotester to re-run the test?

Force push isn't doing anything, because my branch is already up-to-date

Do something like this
git commit --amend --no-edit

(On the go, otherwise I can repush myself later).

Ah, thanks for the tip!  All done now.

Hrm. It's still failing. :-(

Ping @CyberShadow, build log says
ddmd/arrayop.d(21): Error: module id is in file 'ddmd/id.d' which cannot be read

Yeah, DAutoTest is currently all red. It greenlit a bad PR which should've been red due to a cached dependency. Sorry about that. Currently bisecting to find the bad PR.

@CyberShadow thx! Also @CyberShadow and @MartinNowak why is jenkins unhappy with this? Error msg seems unrelated:
source/unit_threaded/io.d(334,26): Error: expected 0 arguments, not 2 for non-variadic function type nothrow @nogc ref @system File()
source/unit_threaded/io.d(335,26): Error: expected 0 arguments, not 2 for non-variadic function type nothrow @nogc ref @system File()
source/unit_threaded/io.d(285,27): Error: template instance unit_threaded.io.threadWriter!(makeGlobal, makeGlobal) error instantiating
Warning: testIssue31 passes the criteria for a value-parameterized test function but doesn't have the appropriate value UDAs.
         Consider changing its name or annotating it with @DontTest

why is jenkins unhappy with this

I think Jenkins has been unhappy about everything since #5421.

Fixed, should be green soon: https://github.com/dlang/dlang.org/pull/1682


chore(font-face): @font-face mixin

@font-face mixin, accepts both file-based and local references. Also is configurable for file formats, font options, and unicode-range.
Addresses an item in #1

Current coverage is 100% (diff: 100%)

Merging #63 into master will not change coverage

@@           master   #63   diff @@
===================================
  Files          28    29     +1
  Lines         107   121    +14
  Methods         0     0
  Messages        0     0
  Branches        0     0
===================================
+ Hits          107   121    +14
  Misses          0     0
  Partials        0     0

Powered by Codecov. Last update 78cd60f...e846e39

@mxstbr this is ready for review. Travis is timing out on tests only on the push build, but I think it is a hiccup on their end. Especially want your feedback on the examples, since @font-face works differently than traditional CSS properties.

@mxstbr I looked at pruning by looping over with Object.keys and it proved to be about the same speed, with more code. The question is if we are okay with a slightly more opaque approach with a comment vs a more verbose but slightly clear approach (with Object.keys).


Incompatibility with OAuth1 by requests-oauthlib

The problem
When using requests-cache together with OAuth1 auth or OAuth1Session from requests-oauthlib, get_cache_directives fails because OAuth1 auth casts header values to bytes (particularly, Cache-Control) during prepare_request, while get_cache_directives expects headers to be strings.
This causes the following error:
Exception has occurred: TypeError a bytes-like object is required, not 'str'
  File "[REDACTED]/requests_cache/cache_control.py", line 190, in get_cache_directives
    cache_directives = headers['Cache-Control'].split(',')
  File "[REDACTED]/requests_cache/cache_control.py", line 85, in from_request
    directives = get_cache_directives(request.headers)
  File "[REDACTED]/requests_cache/session.py", line 128, in send
    actions = CacheActions.from_request(
  File "[REDACTED]/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "[REDACTED]/requests_cache/session.py", line 115, in request
    return super().request(method, url, *args, **kwargs)

Note, this might also be a problem in main branch, though I haven't checked it by myself: https://github.com/requests-cache/requests-cache/blob/main/requests_cache/policy/directives.py#L36.
Expected behavior
Headers are parsed and handled properly, without raising an error even if they are bytes.
Steps to reproduce the behavior

Create a CachedSession instance
Make a request to somewhere, having auth parameter set to a requests_oauthlib.OAuth1 instance and expire_after to a non-negative number (Cache-Control header needs to be not None)
See the error here: https://github.com/requests-cache/requests-cache/blob/170a627e086baca8d4d3fd4c6cfa960123311b5b/requests_cache/cache_control.py#L190

Workarounds
I'd say it might be possible to solve this by converting headers (or just the specific ones) back to strings before handling them.
Environment

requests-cache version: 0.9.6
Python version: 3.9.10
Platform: any
requests-oauthlib version: 1.3.1

This looks easy enough to fix. Thanks for reporting it!

This is fixed in main, and will be included in a patch release within the next couple weeks.

This is now fixed in 0.9.7.

@JWCook thanks! I'll try using it soon.

Can confirm it now works perfectly in our case. Thanks for fixing this!


[SlidesLive] Use token for JSON retrieval and improve metadata extraction

Please follow the guide below

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[x] Read adding new extractor tutorial
[x] Read youtube-dl coding conventions and adjusted the code to meet them
[x] Covered the code with tests (note that PRs without tests will be REJECTED)
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[x] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
The SlidesLive extractor now needs a player_token query parameter in the JSON URL, whose value is given by the data-player-token attribute in the HTML element (
) with id="player".
Also, some of the expected metadata (timestamp, eg) wasn't being collected.
Resolves #29954.

The second download test fails because ffmpeg is needed to download m3u8. Isn't ffmpeg in the CI VMs?

You are supposed to just use skip_download when downloading from manifests

Thanks, that makes sense, in that it accords with what I've seen. The second test didn't have skip_download, though (as the diffs show), so I wonder if it ever passed before.

The second test didn't have skip_download, though (as the diffs show), so I wonder if it ever passed before.

I think he means that you should add a skip_download to the second test.

Indeed, not running the failing part of the test would stop it failing.
The point is that this test as originally written didn't skip the download test (see git blame) and so I wondered whether it ever did pass when it was written.

download test with ffmpeg passes on the machine the test is written in. Once ffmpeg version changes, it may no longer pass. So ig the maintainers never tested it 🤷

Is this ffmpeg version dependency because different versions may download different-sized initial pieces of the video, which should be addressed here?
Or is it that different versions of ffmpeg may reassemble the video in equivalent but bit-different ways? In which case we should be testing some invariant(s) rather than the MD5 of the download.

I am not entirely sure. It's just something I have noticed from experience
btw, the link in ur comment is broken

btw, the link in ur comment is broken

Apparently, to put an anchor in GH Markdown you say:
text to be target of anchor

And then this makes an anchor with actual HTML name user-content-anchor-name, which therefore you link with s/t like [link text](page_url#user-content-anchor-name)
Who could guess? Anyway, better now.

Hi! Thank you for fixing the issue with slideslive!
I am trying to download my video I recorded for a conference: https://slideslive.com/38972123/mix3d-outofcontext-data-augmentation-for-3d-scenes
On the master branch I was having an issue with authorization (401), but with your commit it is solved.
However, now I get an Error related to parsing JSON:
youtube_dl.utils.ExtractorError: 38972123: Failed to parse JSON  (caused by JSONDecodeError('Expecting value: line 1 column 1 (char 0)')); 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.

Do you have a clue where should I look to solve it?

The supposed JSON downloaded from https://ben.slideslive.com/player/' + video_id turns out to be a playlist (#EXTM3U ...). If you d/l this, extract the slides.json URL from the playlist, and download it, you get something like this:

https://cdn.slideslive.com/data/presentations/38972123/v2/slides.json?1638065435

{
  u'slides': [
    {
      u'image': {
        u'name': u'X52r__1637863423__0000__Adfi'
      },
      u'type': u'image',
      u'time': 0
    },
    {
      u'video': {
        u'service': u'yoda',
        u'export_as_video': True,
        u'muted': True,
        u'duration_ms': 21280,
        u'resolution': {
          u'width': 1920,
          u'height': 1080
        },
        u'id': u'vvzVOxYp_ynO'
      },
      u'type': u'video',
      u'time': 4440
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0002__tkva'
      },
      u'type': u'image',
      u'time': 25720
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0003__QKb1'
      },
      u'type': u'image',
      u'time': 30520
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0004__nShc'
      },
      u'type': u'image',
      u'time': 39240
    },
    {
      u'video': {
        u'service': u'yoda',
        u'export_as_video': True,
        u'muted': True,
        u'duration_ms': 2880,
        u'resolution': {
          u'width': 1920,
          u'height': 1080
        },
        u'id': u'dGeEm6bx_0e1'
      },
      u'type': u'video',
      u'time': 43240
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0006__Czuy'
      },
      u'type': u'image',
      u'time': 46120
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0007__POUv'
      },
      u'type': u'image',
      u'time': 52880
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0008__3R0E'
      },
      u'type': u'image',
      u'time': 57240
    },
    {
      u'video': {
        u'service': u'yoda',
        u'export_as_video': True,
        u'muted': True,
        u'duration_ms': 14320,
        u'resolution': {
          u'width': 1920,
          u'height': 1080
        },
        u'id': u'Uk9xX-x5Muo4'
      },
      u'type': u'video',
      u'time': 65480
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0010__1LjO'
      },
      u'type': u'image',
      u'time': 79800
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0011__ueTK'
      },
      u'type': u'image',
      u'time': 82320
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0012__QGwP'
      },
      u'type': u'image',
      u'time': 86920
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0013__HuJC'
      },
      u'type': u'image',
      u'time': 88520
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0014__OBFk'
      },
      u'type': u'image',
      u'time': 90240
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0015__5oLL'
      },
      u'type': u'image',
      u'time': 93440
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0016__PIRH'
      },
      u'type': u'image',
      u'time': 100920
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0017__WXeP'
      },
      u'type': u'image',
      u'time': 107120
    },
    {
      u'video': {
        u'service': u'yoda',
        u'export_as_video': True,
        u'muted': True,
        u'duration_ms': 9200,
        u'resolution': {
          u'width': 1920,
          u'height': 1080
        },
        u'id': u'DYmVED0Js_gb'
      },
      u'type': u'video',
      u'time': 122240
    },
    {
      u'image': {
        u'name': u'X52r__1637863423__0019__YgcM'
      },
      u'type': u'image',
      u'time': 131440
    }
  ],
  u'slide_qualities': [
    u'big',
    u'medium'
  ]
}

As a test I extracted the service_name (`.service`) and service_id (`.id`) from `.slides[1].video` in the above and got this:
```
[info] Available formats for vvzVOxYp_ynO:
format code           extension  resolution note
hls-group_A1-audio_5  mp4        audio only
dash-5                m4a        audio only [eng] DASH audio  128k , m4a_dash container, mp4a.40.2 (44100Hz)
dash-1                mp4        416x234    [eng] DASH video  145k , mp4_dash container, avc1.4d400d, video only
hls-275               mp4        416x234     275k , avc1.4d400d, video only
dash-2                mp4        640x360    [eng] DASH video  365k , mp4_dash container, avc1.4d401e, video only
hls-495               mp4        640x360     495k , avc1.4d401e, video only
dash-3                mp4        768x432    [eng] DASH video  730k , mp4_dash container, avc1.4d401e, video only
hls-860               mp4        768x432     860k , avc1.4d401e, video only
dash-0                mp4        1280x720   [eng] DASH video 3000k , mp4_dash container, avc1.4d401f, video only
hls-3130              mp4        1280x720   3130k , avc1.4d401f, video only
dash-4                mp4        1920x1080  [eng] DASH video 4500k , mp4_dash container, avc1.4d4028, video only
hls-4629              mp4        1920x1080  4629k , avc1.4d4028, video only (best)
```
However I suppose the other video items are also relevant and the image data may be as well. Perhaps a playlist should be extracted in this case?

Hi dirkf,
Thanks for all your work.. Is there currently a way to make this patch work to download slideslive audio/video ? I'm the original poster of the issue about slideslive downloads being broken, so I'm still very interested in this feature. Thanks again!

Depending on what type of yt-dl installation you have, you can replace the extractor/slideslive.py file with the PR version.
However, as you appear to have the Windows self-extracting version, it's not so easy. It is reported that WinRAR can manipulate the yt-dl self-extracting archive (~8MB). Or if Python is installed on your Windows system (rather than using the version  bundled into the self-extracting archive), you can install yt-dl 2021.12.17 with pip or pip3 and then update the extractor.
When replacing the extractor, any compiled version (*.*pyc, *.pyo) needs to be removed as well.

Thanks @dirkf I'm fine with that, I was referring to latest issue "Failed to parse JSON" reported above. I do get the same thing. Example below.

python -m youtube_dl --verbose -x --audio-format mp3 https://slideslive.com/38957205/accessibility-hci-ml-papers
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '-x', '--audio-format', 'mp3', 'https://slideslive.com/38957205/accessibility-hci-ml-papers']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.9.9 (CPython) - Windows-10-10.0.18363-SP0
[debug] exe versions: none
[debug] Proxy map: {}
[SlidesLive] 38957205: Downloading webpage
[SlidesLive] 38957205: Downloading JSON metadata
ERROR: 38957205: Failed to parse JSON  (caused by JSONDecodeError('Expecting value: line 1 column 1 (char 0)')); 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.

Ah, I understand.
Let's assume that the unparsable JSON is always a .m3u8 playlist pointing to JSON that has a similar format to the one I quoted, ie has a slides list each of whose items is either an image or a video, tagged with a time, presumably the time from the start of the presentation.
So is the right thing just to extract a playlist of all the videos in time order?

slides list each of whose items is either an image or a video, tagged with a time, presumably the time from the start of the presentation.
So is the right thing just to extract a playlist of all the videos in time order?

I think that would be the right thing to do. Looking at the `'duration_ms' fields I'm guessing each chunk corresponds to a portion of the video to be synced with a specific slide. It did not use to be the case before so I wonder why the change, given that the website has no new functionalities compared to ~6 months ago. Anyway thanks again @dirkf.

Anyone keen to implement a fix for this ? I can offer a personal donation to the developer or the project if anyone can bump this up in the list of request priorities :)

CTO from SlidesLive here.
When you fetch 'https://ben.slideslive.com/player/' + presentation_id using the player token you get a custom M3U8 playlist which contains video service (#EXT-SL-VOD-VIDEO-SERVICE-NAME) and ID (#EXT-SL-VOD-VIDEO-SERVICE-ID) for the actual video and link to a JSON (#EXT-SL-VOD-SLIDES-JSON-URL) which contains information about all the slides.
When video service is youtube you can use usual YouTube implementation to download video with that ID.
When video service is yoda you can use one of the servers from #EXT-SL-VOD-VIDEO-SERVERS to download that particular video using following URL https://$VIDEO_SERVER/$VIDEO_ID/master.m3u8 which is Apple HLS playlist.
Slides JSON contains images and videos. These are static slides and animations. Video slides are a little bit trickier to download and right now there isn't straightforward way to do that, unfortunately. Each slide has time which is timestamp in millis from the presentation start when it should appear. Video slides also have their duration in millis in video.duration_ms.
However, we are in the process in upgrading our infrastructure a little bit right now. I cannot promise any kind of compatibility, unfortunately. Also, the custom M3U8 playlist might contain slides information directly in the future instead of the JSON link.
Also, I would like to remind everyone to download videos in moderation. Traffic is not free and if too many videos would be downloaded causing high traffic charges we would have to start fighting against it. Also, videos are a property of conferences organizers.

Your contribution is highly appreciated, as is the reminder to respect the site's resources. When a conference user archives a session for private use it may well save the site the cost of serving that session repeatedly whenever the user reviews it. And while wishing the site success and longevity, circumstances might lead to the session being unavailable online.

Also, I would like to remind everyone to download videos in moderation. Traffic is not free and if too many videos would be downloaded causing high traffic charges we would have to start fighting against it. Also, videos are a property of conferences organizers.
EDIT: I would love to help with fixing youtube-dl but it will have to wait until we finish the infrastructure upgrade.

This is great to hear, thanks for getting involved in the discussion.
You may be interested in hearing that my use is to download conference talks in audio format for offline/>1x listening (e.g. with an MP3 player). The possible time savings for academics make this is a key feature of conferences turning online. Conferences that choose YouTube as a host make this effortless. So I think it's indeed in Slideslive's interest to make this possible too.


audio and video messages are not working

able to send audio and video messages. but are not visible in chat conversation(showing as a empty message)
and not able to play them on web at https://demo.rocket.chat.

We still need to work on showing audio and video support (sending the file is easier).
I'll open two tickets (one for audio, the other for video).
@srinivas3120
About the third issue: not able to play on the web; could you guide me to message?

Audio support #113
Video support #114

@laggedHero i have uploaded them through the app. not able to play them on web. i have them on my account. if you want i can share credentials.

Closing this issue, since it's duplicated to #113 and #114.


"fragment hints" or "web seeding"

Is your feature request related to a problem? Please describe.
The "problem" this solves is that of wanting IPFS to serve as a back up for a file against its web host going down, while simultaneously using the web host (or, perhaps, multiple web hosts) as a back up in the case of no-one seeding the file in IPFS (or all currently-seeding peers being inaccessible).
Describe the solution you'd like
Two possible solutions; either/or would be great:

The IPFS Companion add-on should attempt to fetch the following file from IPFS, at least in the case of the link itself going HTTP 404/403/410/451 or being hijacked (as its referent site has been, though the following link is at least valid for now):
https://s3.amazonaws.com/files.cloudprivacy.net/ssl-mitm.pdf#:~:x-ipfs-path=/ipfs/QmVSSCvbYX8XHVcf2kqrpGGmH5PdCbgAP11CCJXrrJQ2yJ
The IPFS Companion add-on should attempt to treat Amazon AWS and the other named servers as "web seed"-like peers when attempting to fetch the following URL:
https://ipfs.io/ipfs/QmVSSCvbYX8XHVcf2kqrpGGmH5PdCbgAP11CCJXrrJQ2yJ?filename=ssl-mitm.pdf#:~:x-ipfs-webseed=https%3A//s3.amazonaws.com/files.cloudprivacy.net/ssl-mitm.pdf&x-ipfs-webseed=https%3A//crysp.uwaterloo.ca/courses/cs458/W11-lectures/local/files.cloudprivacy.net/ssl-mitm.pdf&x-ipfs-webseed=https%3A//static.banky.club/shitposter.club/af4ff1a87cec1d73451b030c9c6efbf3f04bc44f0e5e14ebc9b227eb8e03c97e.pdf

Describe alternatives you've considered

Requesting the CDN in question add in x-ipfs-path headers to static files
Hosting it somewhere that includes the appropriate /ipfs slug in the path
Actually seeding the file myself with an IPFS node

Obviously, the webseed-hints wouldn't necessarily need to be kept client-side; they could just as well be comprised by a real URL parameter, which might provide some additional flexibility for future improvements.

here's another suggestion in the same vein:
this fantastic explainer by Ashley Valentijn of Syracuse University

re ipfs://ipfs/bafkreie4wgpls4g5ewmbu25mfeaojmx7zvgwpcpasdmo432iul3

Thank you for brainstorming! Some thoughts / questions (if i missed the mark, please elaborate more):

(1) This flow is tricky, because:

data could be imported to IPFS with custom parameters (different chunks, different hash function, different DAG type)
CID of data imported with default parameters would not match.
Including parameter space in URL is not an option, as one could create DAG by hand, outside of parameters in go-ipfs.
The only way to have all the data to deterministically verify a HTTP response is if the web seed is a CAR file. This is still a good idea :+1: but not sure how useful given someone needs to create a CAR via ipfs dag export

(2)  Is the idea here to fetch from IPFS rather than original URL if user agent support IPFS?

If so, why not link to https://cf-ipfs.com/ipfs/QmVSSCvbYX8XHVcf2kqrpGGmH5PdCbgAP11CCJXrrJQ2yJ?filename=ssl-mitm.pdf, which will work over HTTP and if ipfs-companion is present get loaded from local node?

(3) iiuc not feasible for various reasons

IPFS CID is not a hash of a file, but a hash of a root node of a DAG
There is no web extension API that would allow us to do this in a performant way (requires script injection on every  page)
If you want content integrity verification, you use /ipfs/{cid} paths or DNSLink, and ipfs-companion redirects them to local node, which does the verification natively.

[/ipfs/QmV…2yJ?filename=…&x-ipfs-webseed=…] is tricky, because…data could be imported to IPFS with custom parameters (different chunks, different hash function, different DAG type); CID of data imported with default parameters would not match (including parameter space in URL is not an option, as one could create DAG by hand, outside of parameters in go-ipfs).

Torrents also have different chunking parameters that can lead to different URNs for the same exact file (or even fs-tree), and yet solved web-seeding / leeching from "dumb" HTTP servers without provisioning for said parameters in the URI scheme.
While (as with BitTorrent) active/"real"/software peers will be required to bootstrap the structure of the file (i.e. fetching non-leaf data), once the software has constructed a mapping of the chunkspace onto an fs-tree, it's then clear to pull at least the leaf nodes from HTTP servers. (Admittedly, a ~0.5MiB PDF wasn't a great prototypical example of this, since most people will be able to snap the whole file up in an instant in the same order of time it takes to fetch the metadata.)

[https://cf-ipfs.com/ipfs/QmVSSCvbYX8XHVcf2kqrpGGmH5PdCbgAP11CCJXrrJQ2yJ?filename=ssl-mitm.pdf] will work over HTTP and if ipfs-companion is present get loaded from local node

Per the OP, that (currently) breaks whenever no IPFS client happens to be seeding (pinning) the file at the moment, even if the file's canonical location is still OK. A client supporting x-ipfs-webseed parameters would at least have the possibility not to be left in the dark should the seeding peer drop out mid-transfer.

[ is] not feasible [because] …There is no web extension API that would allow us to do this in a performant way (requires script injection on every page)

I proposed that in light of [#1050]: given that linkification is seemingly deemed acceptable, the particular rubicon of touching pages isn't a blocker—checking links for a specific attribute should be far more performant than scrubbing all text nodes for excerpts that look like IPFS URIs anyway.


[nima][performance] http1 server response BlockingOutputStream has necessary byte[] copy

For BlockingOutputStream in Http1ServerResponse for the first buffer it currently has:
// if somebody re-uses the byte buffer sent to us, we must copy it
firstBuffer = buffer.copy();
but the buffer here is always created locally via the 3
BlockingOutputStream.write() methods so this buffer instance
can never be re-used and the copy() is unnecessary performance
overhead

Ah no, ResponseOrderingTest fails with the use case of:
.any("/stream", (req, res) -> {
    try (InputStream in = req.content().inputStream();
            OutputStream out = res.outputStream()) {
        in.transferTo(out);
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
});

So the copy() is needed for this case. I need to think if there is some way to enable a "zero copy" write of content / bytes ... hmm.
I'll close this PR though.


[Feature]: Give the possibility to add a seed to reproduce random and bayesian searches with sweeps

Description
Hello everyone,
I am working on a big research project with my University and we need that everything is reproducible from the beginning to the end. We decided to rely on Weights and Biases for the hyper-parameter tuning part of the project since we love it.
However, the only hyper-parameter search that I am able to reproduce in wandb is the grid search since it simply iterates over the hyper-parameter values in the sweep config. So, by just putting a classic set_seed() function before the call to wandb.agent(), I am able to reproduce exactly the entire search. By exactly, I mean that the entire training for every single "sampled" configuration is reproducible.
Now, we have a much more complex model that we need to tune. For this model, it is unthinkable to use a grid search for scalability issues. For this reason, I tried to work with random and bayesian searches. However, even if I set a seed before the call to wandb.agent(), I am not able to reproduce the sampling of the hyper-parameters from the sweep config. Random search simply randomly samples a configuration for each run, instead, bayesian search samples only the first configuration and then tries to change it in order to maximize performance.
Suggested Solution
So, after this big preamble, my request is to simply add a seed or random_state parameter to the wandb.agent(), like wandb.agent(sweep_id=..., function=..., count=..., random_state=...).
I tried to go through your code, and it seems you work with some Queue objects. Maybe you just need to add a seed on that part of the code. I am not able to find the logic of random and bayesian searches in the library.
Thank you in advance.
Alternatives
No response
Additional Context
No response

Hi @tommasocarraro thanks a lot for this great suggestion! Actually this feature has been asked again before, I have now increased the number of requests and will keep you posted here on any progress updates from the engineering team.
At the moment only the grid search will give you a reproducible experiment, as the seed of the random/bayes methods isn't currently exposed. If your training isn't computationally expensive, you could also run the configuration multiple times and aggregate the metrics if you Group the runs by Sweep, in order to somehow eliminate the discrepancies amongst them. I hope this helps!

Nice!
I will wait for this nice feature.
Unfortunately, I do not think that your idea is applicable in my case.
What I would like to do is to perform the Bayesian search for many methods.
Then, if one wants to reproduce my code, he/she just have to run the main and the main will perform the search with the selected seed, and all the other operations.
So, my request is useful for reproducing the entire experiment from the beginning to the end: dataset creation, hyper-parameter tuning, training of the model with the best parameters, test of the model.
Without the possibility to set a seed, the hyper-parameter tuning will always be different and hence also the best hyper-parameters found by the procedure.

Hi @tommasocarraro thank you for additional details, indeed for your use case you would want to be able to control the seed of the random generator. I will try to bump up the priority of this feature, but for the moment I can only tell that this is something on the roadmap. I will temporarily close this thread now, but will get back to you once there are any updates! Thanks again for suggesting this.


event::PopStateEvent erroniously states that it can be created by push_state or replace_state

https://docs.rs/stdweb/*/stdweb/web/event/struct.PopStateEvent.html#method.state

If the history entry being activated was created by a call to history.push_state() or was affected by a call to history.replace_state(), the popstate event's state property contains a copy of the history entry's state object.

However, the PopStateEvent (window.onpopstate) will in fact never be triggered by history.{push, replace}State(), which is what stdweb calls.
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate

Note: calling history.pushState() or history.replaceState() won't trigger a popstate event. The popstate event is only triggered by performing a browser action, such as clicking on the back button (or calling history.back() in JavaScript), when navigating between two history entries for the same document.

Both doc snippets you've pasted originally come from MDN, so are you saying they're wrong? (:

it looks like we just need to include the full documentation from here: https://developer.mozilla.org/en-US/docs/Web/API/PopStateEvent
the full docs state the second point.
Basically: yes, you get the state from pushState -- but only from a previous pushState that you are now going back/forwards to.

Sounds good to me!

PR with the fix merged; thanks a lot!


Include date in receipt PDF file

User Story
As a sponsor, I want to avoid the admin hassle of managing my open collective receipts.
They'd like to
a) avoid logging in each time so receive PDF via email
and
b) better track/find files (the uuid is problematic). They suggest a timestamp name.
MVP
Sending a monthly consolidated PDF in the monthly report seems like an easy improvement at the moment.
Not sure what can we done for the file names.

Thanks for opening an issue about this.
Just to clarify, the file name could include the uuid, please just also include name (so I dont have to open the file to figure out what it is) and date stamp. For example:
opencollective-20200203-uuid.pdf

please just also include name

This makes sense.

Extracted the proposal for receipts in email in https://github.com/opencollective/opencollective/issues/2867.
Adding the date in the filename is a good idea. Let's keep this issue about this topic.

A $100 bounty was attached to this issue. Anyone submitting a Pull Request will be rewarded with $100 when the Pull Request is reviewed, accepted and merged. More info
This bounty is currently reserved to participants of the Open Source Festival event. If not completed there, it will be later open to everyone.

@piamancini can you assign the issue to me

@piamancini I'd like to work on this issue. Can you assign the issue to me

@Devvyky you're assigned!

thanks @znarf
I'd like to confirm that the repository for generating the receipt PDF file is this https://github.com/opencollective/opencollective-invoices

@piamancini I'd like to work on this issue. Can you assign the issue to me

Yes, happening there:
https://github.com/opencollective/opencollective-invoices/blob/master/src/server/controllers/transactions.js#L136
https://github.com/opencollective/opencollective-invoices/blob/master/src/server/controllers/transactions.js#L82
But also here:
https://github.com/opencollective/opencollective-api/blob/master/server/graphql/v1/queries.js#L353

Okay, thanks so much for the information @znarf

@Devvyky Any progress? Fyi, we'll have to unassign you if there is no significant activity within the next days.

There's progress @znarf I'd be done soon, I plead

@znarf there's progress. i should be done soon

@znarf most API calls are returning null value.

i created a custom date in the code on line 79 and 80

and it returned the date stamp in the filename of the receipt pdf file

most of the API calls are returning Null Value.
I'm really sorry I'm a bit slow at fixing this @znarf i have exams, I plead.

please use an 8 digit date stamp (ie YYYYMMDD like 20200301 or 2020-03-01), it makes it much easier to write software to do something with the file

okay @freyfogle . Thanks, i would do just that.

can I take up the issue? :)

can I take up the issue? :)

Yes @sdas13 , you can have a go at it , since we didn't see any progress , and hence assigning you

Unassigning @Devvyky and hiding some comments to reduce noise.

:trophy: This issue has been completed by @leonardohof
To claim the $100 bounty, you can either:

Submit an invoice to https://opencollective.com/engineering/expenses/new (please mention the issue number in the expense's title)
Or ask for an Open Collective gift card of the same value (to donate to other collectives)


New infura keys

:tada: This PR is included in version 2.7.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


We need our own scaffolding tool

I'm looking at bringing our scaffolding situation in line with requirements, and it strikes me that we really are looking for a separate tool instead of using one baked into fuge.
Needs :

scaffold services even without fuge being installed.
scaffold both entire systems and individual services.
scaffold both backend and frontend 'services'
library of 'generators' that work out of the box with fuge.
simple to build and maintain 'generators'.
some way to install / manage 'generators'.
curated 'generator' list.
can publish public and private 'generators'.
can search for / discover new 'generators'.
ability to accept user input during scaffolding.
ability to script scaffolding.

Viability.
I'm of the opinion that Yeoman doesn't tick nearly enough of these boxes, but my biggest concern is that we will never be in a situation where we can pull in any yeoman generator and have it 'just work' (tm).
This issue is not about the limitations of yeoman though, but the properties of the tool we want.
I think that the fact that yeoman is our only real option here shows that there is a gap in the available tooling, and that is at least partly due to the nature of scaffolding tools. Because you only really use them at the start of a project, they have diminishing returns ... microservices are an edge case though, since you would potentially use the generators far more regularly.
By building our own tool with it's own namespace to work with, we can ensure a curated set of generators that work well with fuge, creating another funnel for new users, but very importantly providing another way for people to start contributing to the project. ie: another extension layer.
For the generators themselves, I am partial to building on the great work done on MetalSmith, which is more than just a static site generator. It is actually a very flexible api for turning one directory containing files into another directory containing files, with pluggable transforms in between. It can be used to build a project scaffolder, and there are some other prior art projects too.
For package installs / publishing, we would use npm. I imagine we could add a keyword search into the command line tool, which would allow you to search for more generators which would be installed by a command that basically just does 'npm install -g' for you. This would net us the full abilities of npm infrastructure, including namespaced packages, private packages, npme. etc.
What do we call it?
I have a pretty good idea of what to build, but now for the fun part. Giving it a name ... because giving something a name is what makes it real ;)
I was thinking something in the vein of gene therapy. As in, taking strands of DNA and inserting them into your organism. The only word I could come up with was contig, but that's prone to typos and probably not in-line with the apparatus theme.
Remember that this is going to be a command line script, so needs to be short and memorable, and have the namespace available (npm packages, etc.)

Ooh : de novo synthesis

De Novo: adverb, Latin.

anew; afresh; again; from the beginning.

And it's not taken on npm...
example usage:
# replaces fuge generate system
denovo generate fuge-example my-system
cd my-system

# will search for generators with these tags
denovo search react webpack es6
# [snip .. listing]

# alias for npm install -g denovo-react-webpack-es6
denovo install react-webpack-es6

# add service as separate commands
denovo generate react-webpack frontend
fuge add backend

# as a convenience command that does both.
fuge generate hapi backend

# creating and publishing a new generator
denovo generate denovo-generator my-react-generator
cd my-react-generator
npm publish

Well, the project name is taken now : https://www.npmjs.com/package/denovo

I would have went with the name lazi ☺

@AdrianRossouw for some of those reasons I have built https://github.com/mcollina/generify for nscale.
The big question is if a generator tool needs to be part of fuge or not. The appeal of being able to generate a service without leaving fuge console is really high, but on the other end keeping the generator part of fuge would make it more obvious that is tied to our stack (seneca). Also, by keeping it inside fuge, we can support some smartness, like automatically updating the compose.yml.
So my proposal is to keep having a generator inside fuge, but on the other end make it more pluggable: maybe having a concept of standard "layers" that can be applied. There might be the "docker" layer, a "fuge-compose" layer, and so on for every fuge-related task. Basically adding a new service would be applying some "layers" to the current system.

my proposal is to have it be a separate tool, that is installed/used alongside fuge.
So fuge generate would still remain, but It would become a convenient alias for building
a new service from your chosen scaffolding, and adding it to the system.
# in the shell
generate hapi backend

But you also gain the ability to build a project completely separately from the context
of fuge, and stick it in it's own repo, at a later point to be able to pull it into fuge.
This in turn helps you build a library of things you can pull into your system with ease.
I'm not sure I follow the idea of how layers would work here? Maybe we could chat about
it sometime ?

Could the (API) scaffolding tool be built in compliance with OpenAPI (as an option)?

openapi seems like an option, but it is also rest specific (fwict). our seneca services are transport independent, and I don't think that the pattern matching we use maps very cleanly onto REST.
I think we will eventually end up with something that could be potentially openapi compatible, but I suspect it might be something we want to evolve towards, and not force.

Any update on this?  Could we get the old scaffold hosted somewhere or referenced in the README?  I saw @pelger 's great presentation at Node.js Interactive and was ready to take fuge for a spin only to find out the generation portion of "An generation and execution environment" had been removed without a replacement.


Fix e2e tests cannot run locally after webhook cert dir changes

#601 introduced a small regression where the operator fails when running e2e tests locally. The reason is because the original code always created a temp dir while the new code creates a dir at a static location (/etc/tls) which fails on my system. Even if it passed, it would not work if every e2e uses the same directory.
As such, the e2e tests now create and manage a temp dir on their own.
Note, I accidentally pushed this commit to the main branch earlier which I reverted so we could code review this properly.

I think there will need to be some additional logic to use the "default" directory and maybe fall back to the temp directory.

Deleting, as we are in progress of fixing this.


External copy and paste

In its current state, one can use ctrl-c, ctrl-x, ctr-v to copy/cut/paste relative the currently
selected text (highlighted in blue) and/or the insertion point.  But we should also be able to copy
text "to the outsize", e.g., what one does with cmd-C on a Mac.  Ditto with cmd-V for pasting "external" data.  I have no idea how to do this

I have a first draft of copy-paste using this editor in another app.  I will wire it into this app shortly.  One problem is that if one copies text from another tab, it does not go into the app clipboard, but some system clipboard

The current version works pretty except (1) only in Chrome, (2) one has to grant permission each time.  See the "Help" info for external copy-paste.


Import issues

hey there, noob here.
I keep getting import issues, I have been going around in circles trying to scrape x with cookies, I can't until import problems are resolved. Is there an obvious solution.

Hi, @CODEGAUSS. What is import problems?


Switch from PML to GoAccess for VM Log monitoring

Issue Type

Feature Idea

Summary
I would like to use GoAccess as a dev tool instead of PimpMyLog. How can I go about setting it up automatically when I create a new VM?

@kevinquillen - The best way currently would be to add a task include file (to use Ansible tasks) or a shell script to run post-provision: http://docs.drupalvm.com/en/latest/extending/scripts/
If you end up finding GoAccess to be a good drop-in replacement for PML, then I'm definitely not opposed to the idea of switching. I'm not married to PML, as I never use it myself!
But does GoAccess display log entries in a centralized way, or is it just a stats dashboard?

@geerlingguy GoAccess a dashboard of stats collected from input access logs.
Back when I was complaining about PML I switched over to GoAccess and found it incredibly valuable. It's got a more concise scope dealing strictly with access logs, and there is (minimal) configuration to happen - but it's a very useful tool.
I plugged 6 months worth of production logs into it 👍

@geerlingguy Where do I sign the petition to get PML switched out with GoAccess? That would be awesome if you're still considering it!

@fubarhouse do you have any example of your setup that you could post?

@oxyc I'll add some information about it on Tuesday morning AEST.

#Goaccess
Install
I usually build mine from source, however 1.2 is available via the system package management utility for all linux-based systems.
Building from source. Note that the folder created must not be moved or changed after building.
sudo apt-get -y install libncursesw5-dev gcc make
sudo apt-get -y install libgeoip-dev libtokyocabinet-dev
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
tar -xzvf goaccess-1.2.tar.gz
cd goaccess-1.2
sudo ./configure --enable-utf8 --enable-geoip
sudo make
sudo make install
sudo ln -s /usr/local/bin/goaccess /usr/bin/goaccess

It can now be used from the console, but it also features some really cool HTML generation tools...
For the html work, you'd need to point a port to a location, or a virtual host to a location to serve it.
Config
The following three requirements must be specified in the goaccess.conf file.
The following format strings will need to be set and compatible with the input log files, here're the ones I'm using (compatible with drupal vm's access logs and acquia's access logs.
You will simply need to uncomment these values.
Time:
# The following time format works with any of the
# Apache/NGINX's log formats below.
#
time-format %H:%M:%S

Date:
The following date format works with any of the
Apache/NGINX's log formats below.

date-format %d/%b/%Y

**Logs**:

NCSA Combined Log Format
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

Same of live information via console:
![image](https://user-images.githubusercontent.com/3070264/30836076-70123b08-a29f-11e7-9d94-52c67655b25f.png)
![image](https://user-images.githubusercontent.com/3070264/30836386-3f0d3aec-a2a1-11e7-9dbf-bac02977be4a.png)

To get this, you'll need read access to any log files, and pipe them into goaccess:
````tail -f /var/log/nginx/access.log | goaccess`.```

This must point to where the access logs are being collected, the image above points to `cat /var/log/nginx/access.log.* | goaccess` for me, however you can also do this for gzips - see the documentation for more info

The web interface:

![image](https://user-images.githubusercontent.com/3070264/30836442-9c3008f8-a2a1-11e7-927d-95338e646b67.png)

I hope this helps :)

I've been able to identify some serious problems in production with the use of this tool, so it's permanently in my toolchain now.

Thanks! Looks pretty easy to setup. And saw the the config allows multiple log-files so that's easy. Then just a simple systemd service to keep it running. Main issue I see is https://github.com/allinurl/goaccess/issues/213

I like what I see. And PML has never had the uptake I thought it might have originally. So I'm considering swapping it out for Drupal VM's default—especially if I can get it to work out of the box (instead of having to do extra setup post-Drupal-VM-build!).

It seems like PML's future is pretty uncertain, though I want to thank @potsky again for working on it, it was (and is, for PHP < 8) a great log inspection tool written in PHP.
But as I'm uncertain about the future of Drupal VM itself, and I'm deprecating my PML role, I'm planning on at least removing PML from Drupal VM entirely to lighten the maintenance burden and code footprint.

Does GoAccess work with log files other than Access logs? What about Drupal syslog files or php error logs?


[ENH] Add reverse method to BaseGeometry

#1281
Continuation of #1434.
I implemented it the same way as segmentize to return a new modified Geometry and leave the initial unchanged.
Since it is a class method, would it make more sense to operate on the Geometry it was called on?

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 84.196%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
2083

Relevant Lines:
2474

💛  - Coveralls

I also changed the required GEOS version for the test. I mindlessly set the same version as the previous PR.

@jorisvandenbossche do you think this should be  defined as a property? There are no arguments. You may recall a similar discussion at #1090

I think the conclusion of the other discussion applies here too. Property is designed for managed attributes. Reverse sounds more like an operation on the object so a method is more fitting. At least it feels this way for me.

Thanks @gpapadok !


Use of uninitialized value in tools/djxl.cc - MSan

Describe the bug
When djxl is compiled with MSan it produces a stack trace when provided with any input file that is then converted to an output file:
==1828==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x4aaae7 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose() /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/basic_string.h:220:6
    #1 0x4aaae7 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/basic_string.h:647
    #2 0x4aaae7 in jpegxl::tools::DecompressArgs::ValidateArgs(jpegxl::tools::CommandLineParser const&) /home/ubuntu/libjxl/tools/djxl.cc:166
    #3 0x49cca1 in main /home/ubuntu/libjxl/tools/djxl_main.cc:62:13
    #4 0x7f7d00231bf6 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21bf6)
    #5 0x41ffa9 in _start (/home/ubuntu/libjxl/build/tools/djxl+0x41ffa9)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/basic_string.h:220:6 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose()

To Reproduce
Just run djxl with any input file (even just a file containing "test") and output file.
djxl test /tmp/test.jpg
Expected behavior
djxl should not make use of an uninitialized value
Environment

OS: Ubuntu 18.04 (Windows Subsystem for Linux)
Compiler version: clang 6.0
CPU type: x86_64
cjxl/djxl version string: JPEG XL decoder v0.7.0 6692183 [Scalar]

@oxygen005 is it possible that your libc is not compiled with msan support? How did you compile this?
In djxl.cc:166 I think the only ~basic_string call there is the one returned by jxl::Extension(). I suspect the issue is with the instrumentation itself.

I used this script to compile djxl:
export CC=afl-clang-fast CXX=afl-clang-fast++
export SANITIZER="msan"
export CMAKE_BUILD_TYPE="RelWithDebInfo"
export JPEGXL_ENABLE_TCMALLOC=OFF

cmake -DBUILD_TESTING=OFF -DCMAKE_C_FLAGS=" -DJXL_ENABLE_ASSERT=1 -g \
    -fsanitize=memory -DJXL_DEBUG_WARNING -DJXL_DEBUG_ON_ERROR" -DCMAKE_CXX_FLAGS=" -DJXL_ENABLE_ASSERT=1 -g \
    -fsanitize=memory -DJXL_DEBUG_WARNING -DJXL_DEBUG_ON_ERROR" \
    -DSANITIZER="msan" ..

Followed by:
(cd build && ../env.sh && cmake --build . -- -j3 djxl)
I think you're right that MSan was not compiled with libc support. I will follow the instructions at https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo before opening an issue next time.
Thanks for the input!

./ci.sh msan might be useful here: It downloads and builds libc++ with msan in ~/.msan before building libjxl with it.
Another option is to look into the oss-fuzz build environment which also supports msan. We have some wrappers to make it easier (see doc/fuzzing.md). I don't remember if djxl is built by default in that case but it can be built. These wrappers assume libfuzzer, I don't think I've tried them with afl, but maybe is good enough to start.
These are developer workflows that might not work on other environments, so YMMV.


METADATA QnA- Case sensitive

@LizMoreno commented on Wed Feb 12 2020
Hello, I would like to know why in the metadata for (name: value), it does not distinguish capital letters from lowercase letters? When training the knowledge base, they are lowercase.
please help. Thank you!

@srvbpigh commented on Thu Feb 13 2020
Hello, @LizMoreno
Thank you for your feedback.
We are actively reviewing your comments and will get back to you soon.
Kind regards,
Microsoft DOCS International Team

Hi Team, could you please check user's issue?
Kind regards,
MS DOCS International Team

@LizMoreno @ticianaciminari Thanks for bringing this up. The metadata is normalized to lowercase when it is saved, and there no way currently to preserve uppercase.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag @RohitMungi-MSFT in your reply.

Hello @RohitMungi-MSFT
I need to keep the letters lowercase and uppercase together.
example:  asKLMghN
could they change it? Please

@LizMoreno Our development team has a backlog to support this feature but we do not have an ETA for its implementation. Unfortunately, in the current scenario all tags are stored in lower case letters.

Ok. Thank you


Remove outdated PyPI deployment

@akaszynski, can you remove the old PyPI deployment to avoid confusion from new users
Note, the only project on PyPI that appears to have a dependency to the old vtkInterface is tetgen

Removed,  both tetgen and pymeshfix now use vtki.


Moving subwindow leaves behind the old windows

Sorry if this is a very basic question, this is the first time I'm using ncurses.
When I create a subwindow, and I move it, the window is still visible in its old location, it effectively looks like I have two windows.
fn main() {
    let window = initscr();
    window.keypad(true);
    noecho();
    curs_set(0);
    window.draw_box(0,0);
    let subwin = window.derwin(10, 10, 5, 5).unwrap();)
    subwin.draw_box(0,0);
    subwin.printw("Hello");
    subwin.mvwin(15, 15);
    window.refresh();
    subwin.refresh();
    window.getch();
}

This causes the screen to look like this:

I was expecting the "hello" window to only show up once, is there something I'm missing?

It only draws where you tell it to. It has no notion of "window" in the terms of GUI frameworks like X Window System or window managers like KWin. You are not actually "moving a window", just setting other coordinates to count from when drawing.
About the solution, manual .clear() should do.

As a rule of thumb for pa{n,}curses, it's good to clear your terminal before each iteration of your drawing loop.
This issue should be closed, as this is not a bug.

Okay, that wasn't clear, thanks.


Drop python 2.7 and 3.5, add python 3.9

As discussed in #409 and #412, this library won't be supporting python versions that have reached end of life from version 1.0.0 onwards. This PR drops support for python 2.7 and 3.5, and adds support for python 3.9.
Closes #409

Coverage decreased (-0.7%) to 99.275% when pulling f1080543760703c6c61e47ac5e7a1226b2299433 on SijmenHuizenga:update-python-versions into 1dab2d43acb6920dfa4c112a4b1c1f92e22f57f2 on dbader:master.

Coverage decreased (-0.7%) to 99.275% when pulling f1080543760703c6c61e47ac5e7a1226b2299433 on SijmenHuizenga:update-python-versions into 1dab2d43acb6920dfa4c112a4b1c1f92e22f57f2 on dbader:master.


Rename hinted handoff test

@stef1927, could you please review these docstring and test name changes and make sure they're accurate? My concern is that someone might add hinted handoff tests to this test class without realizing that the hinted handoff feature is older than 3.0.

LGTM, thanks!


Change UserProfile.enter_sends to default to False.

Adds a database migration.

Automated message from Dropbox CLA bot
@rishig, it looks like you've already signed the Dropbox CLA. Thanks!

Just to double check: no one should have a null enter_sends, right? Since having a default means the default is actually set for you in the database at the time of user creation, rather than it being handled higher up by Django?

No, these defaults are (confusingly) set by Django when new objects are created, not at the database level.

Awesome, merged, thanks @rishig!


Empty v-for iteration: v-empty

What problem does this feature solve?
For Vue 3 I would like to submit to your consideration a Vue 2 feature request that was rejected: vuejs/vue#4174
It's a simple way to have content when a v-for iteration is empty, which would work similarly to v-if / v-else.
The original request called it v-empty but I don't care about its name.
It's nice sugar for something that is very common in UI, but more importantly it's hard to emulate when you are iterating over something that doesn't have a length, such as an iterator/generator.
You can see that even after being closed, comments of the original issues are getting a lot of thumbs up:
Issue itself:  👍 16
https://github.com/vuejs/vue/issues/4174#issuecomment-388338342 👍 23
https://github.com/vuejs/vue/issues/4174#issuecomment-608024212 👍 13
What does the proposed API look like?
<template>

{{ x }}

Empty!

<template>

Or any other name.

This is worth going through an RFC, can you open a discussion there or a proposal?

This is worth going through an RFC, can you open a discussion there or a proposal?

https://github.com/vuejs/rfcs/discussions/256

https://github.com/vuejs/rfcs/discussions/256


Investigate Duplicate 12C OCM Pages

Directory docs/home/12c-ocm/12-ocm appears to be a duplicate of docs/home/12c-ocm

The same files are in docs/home/12c-ocm (excluding docs/home/12c-ocm/12-ocm) as are in docs/home/12c-ocm/12-ocm as verified by:
cd docs/home
diff <(find 12c-ocm/12-ocm -type f | sed -e 's!/12-ocm/!/!') \
     <(find 12c-ocm -type f | sed -e '/\/12-ocm\//d') | \
     wc -l

The result is:
0

Removed docs/home/12c-ocm/12-ocm directory


how do i get entity's value?

pub struct Player {
    on_ground: bool,
    #[inspector(min = 0.0, max = 100.0)]
    gas: f32, // this
}

sry, i found docs :D


Surface the keyword mute list functionality.

Is your feature request related to a problem? Please describe.
Keyword mute lists are becoming a much-requested feature. Putting this up here as a please-pop reminder. https://kite.black has a good working example.
Describe the solution you'd like
Surfaced keyword muting.
Additional context
As I post this, [a Twitter owner] is being widely discussed, as is a desire to simply not hear about ... him. Just for a [n unneeded, I know] use-case example.

Issue already open for this: https://github.com/bluesky-social/social-app/issues/670

Will close as duplicate so issues can be better tracked but appreciate you filing ❤

Will close as duplicate so issues can be better tracked but appreciate you filing ❤

Coming fast and furious! 😃
I did check first. Thanks for closing. @alimony posted as I was writing. I'll recheck after filing in the future. Cheers!

Issue already open for this: https://github.com/bluesky-social/social-app/issues/670

Best me by this much. 😀 Cheers.


[fix] dangerous destroy in sys site import

Coverage decreased (-16.7%) to 67.828% when pulling 785bd55d8f7d2cfaa53757445ce7b8662a053b5d on itowtips:fix-site-import into d6a15bf29eea7023e22ce81a2b61193ae4e5f935 on shirasagi:master.


Adding key-values to Azure App Configuration using Bicep when Private Link enabled

Hi,
I encountered specific problem.
I deploy Azure App Configuration with Bicep. App Configuration has public access disabled because I want to use Private Link.
When I am trying to add key-values to App Configuration using Bicep, I receive information that access to the App Configuration is forbidden.
When I change public access to "Enabled", deployment works.
Do you know what it does not work when public access is disabled and Private Link is enabled? For instance for Azure Key Vault I am able to add secrets even when public access is disabled and Private Link is enabled.
I would be grateful for any hints because I am not sure if this is the issue with the service or it should just work like this.

Hi @Daniel-Krzyczkowski, this is a known limitation for either Bicep or ARM template deployment. Please see the note in the document that I quoted here:
App Configuration allows key-value data access over a private link from your virtual network. By default, when the feature is enabled, all requests for your App Configuration data over the public network are denied. Because the ARM template runs outside your virtual network, data access from an ARM template isn't allowed. To allow data access from an ARM template when a private link is used, you can enable public network access by using the following Azure CLI command. It's important to consider the security implications of enabling public network access in this scenario.

Thank you @zhenlan for a quick response! This was also my suspicion but I wanted to be sure.
Azure Key Vault can be accessed by ARM when public access is enabled but I suppose this is because it provides "NetworkRuleSet" and we can set its property called "bypass" to "AzureServices".

@Daniel-Krzyczkowski
Bypass for ARM/Biceps pretty much means public network access. As @zhenlan mentioned above, ARM templates allow to read and write AppConfiguration key-values. That basically translates to proxy calls from a public network. That is the reason for  AppConfiguration to be explicit on calling it out, since it goes outside of the promise of Private Link isolation.

Thank you so much for the answers, all clear now!

Looks like this has been answered. Feel free to reach out again if there are any other questions.

So what's the recommended way of handling this when using Private Link isolation?
Currently we use a dedicated host that has access to the resources, and az cli to import the json file kvset into app configuration.
However this is painful to maintain, we have 5 different environments, so 5 different .json files to maintain and is error prone, a couple of weeks ago this caused massive pain, we were adding a app configuration key vault reference which didn't exist, the error message when running the arm-deploy action didn't explicitly mention that and we spent hours trying to figure out what was wrong.

@drago-draganov Thank you so much for the answer. Great to know that this problem is taken under consideration to be solved in the future.


Incompatible CUDA versions in torch and torchvision

Describe the bug
Running the program in its default condition seems to install incompatible versions of torch and torchvision, so you can't start training at all.
Reproduction
Run cells of DreamBooth_Stable_Diffusion.ipynb from top down.
Logs
WARNING:accelerate.commands.launch:The following values were not passed to `accelerate launch` and had defaults used instead:
	`--num_processes` was set to a value of `1`
	`--num_machines` was set to a value of `1`
	`--mixed_precision` was set to a value of `'no'`
	`--dynamo_backend` was set to a value of `'no'`
To avoid this warning pass in values for each of the problematic parameters or run `accelerate config`.
Traceback (most recent call last):
  File "train_dreambooth.py", line 24, in <module>
    from torchvision import transforms
  File "/usr/local/lib/python3.8/dist-packages/torchvision/__init__.py", line 5, in <module>
    from torchvision import datasets, io, models, ops, transforms, utils
  File "/usr/local/lib/python3.8/dist-packages/torchvision/datasets/__init__.py", line 1, in <module>
    from ._optical_flow import FlyingChairs, FlyingThings3D, HD1K, KittiFlow, Sintel
  File "/usr/local/lib/python3.8/dist-packages/torchvision/datasets/_optical_flow.py", line 11, in <module>
    from ..io.image import _read_png_16
  File "/usr/local/lib/python3.8/dist-packages/torchvision/io/__init__.py", line 8, in <module>
    from ._load_gpu_decoder import _HAS_GPU_VIDEO_DECODER
  File "/usr/local/lib/python3.8/dist-packages/torchvision/io/_load_gpu_decoder.py", line 1, in <module>
    from ..extension import _load_library
  File "/usr/local/lib/python3.8/dist-packages/torchvision/extension.py", line 107, in <module>
    _check_cuda_version()
  File "/usr/local/lib/python3.8/dist-packages/torchvision/extension.py", line 80, in _check_cuda_version
    raise RuntimeError(
RuntimeError: Detected that PyTorch and torchvision were compiled with different CUDA versions. PyTorch has CUDA Version=11.7 and torchvision has CUDA Version=11.6. Please reinstall the torchvision that matches your PyTorch install.
Traceback (most recent call last):
  File "/usr/local/bin/accelerate", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/accelerate/commands/accelerate_cli.py", line 45, in main
    args.func(args)
  File "/usr/local/lib/python3.8/dist-packages/accelerate/commands/launch.py", line 1104, in launch_command
    simple_launcher(args)
  File "/usr/local/lib/python3.8/dist-packages/accelerate/commands/launch.py", line 567, in simple_launcher
    raise subprocess.CalledProcessError(returncode=process.returncode, cmd=cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3', 'train_dreambooth.py', '--pretrained_model_name_or_path=runwayml/stable-diffusion-v1-5', '--pretrained_vae_name_or_path=stabilityai/sd-vae-ft-mse', '--output_dir=/content/drive/MyDrive/stable_diffusion_weights/zwx', '--revision=fp16', '--with_prior_preservation', '--prior_loss_weight=1.0', '--seed=1337', '--resolution=512', '--train_batch_size=1', '--train_text_encoder', '--mixed_precision=fp16', '--use_8bit_adam', '--gradient_accumulation_steps=1', '--learning_rate=1e-6', '--lr_scheduler=constant', '--lr_warmup_steps=0', '--num_class_images=25', '--sample_batch_size=12', '--max_train_steps=800', '--save_interval=10000', '--save_sample_prompt=photo of zwx woman', '--concepts_list=concepts_list.json']' returned non-zero exit status 1.

System Info

diffusers version: 0.9.0
Platform: Linux-5.10.147+-x86_64-with-glibc2.27
Python version: 3.8.16
PyTorch version (GPU?): 1.13.0+cu117 (True)
Huggingface_hub version: 0.11.1
Transformers version: 4.25.1
Using GPU in script?: yes
Using distributed or parallel set-up in script?: yes

I have the same problem with google colab it worked fine before but not anymore.
It goes wrong in this section:
Install xformers from precompiled wheel.
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchvision 0.14.1+cu116 requires torch==1.13.1, but you have torch 1.13.0 which is incompatible.
torchtext 0.14.1 requires torch==1.13.1, but you have torch 1.13.0 which is incompatible.
torchaudio 0.13.1+cu116 requires torch==1.13.1, but you have torch 1.13.0 which is incompatible.

I'm experiencing the same issue as well.

Prop the 3rd or 4th time this has happened. The Transformers wheel updates with little regard for current common settings and messes everything up in it's path. I guess it is useful, but poorly implemented. Usually you can just compile the wheel manually and takes about 40 mins to and hour, but been trying to compile now on an A100 for over 60 minutes now. Cost me at least $2-3 in compute units, I just hope it completes.

Fixed in 8b1472ffd0c8e0144f9db797e545eb908a1831b9
This was caused by pytorch version update in colab and xformers package reinstalling older version. No need to compile it.


Instructions Do Not Work

This is on a new AspNet Core 2.1 website.
Following the configuration instructions results in a redirect_uri_mismatch error from google, complaining about an unauthorized redirect url. Yet I've entered it in the google credentials console exactly as specified here. What gives?

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

ID: 2c9d9c00-1382-c578-6b0d-7b5f9d63eebd
Version Independent ID: ce817a72-ca0d-ce18-f6ac-fc4812e9245d
Content: Set up sign-up and sign-in with a Google account using Azure Active Directory B2C
Content Source: articles/active-directory-b2c/active-directory-b2c-setup-goog-app.md
Service: active-directory
GitHub Login: @davidmu1
Microsoft Alias: davidmu

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

Same issue here. Although maybe it takes a while for Google-settings to be fully active?

Authorized Redirect Urls is specified incorrectly above. It should be:
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/authresp
(no /te as first subpath)

hi @kwaazaar. I tried dropping out the "te", same problem. Or do I need to wait for something to propagate?

I'm now able to get the google login page to come up. For me, it involved changing the redirect_uri in the google credential page to:
https://login.microsoftonline.com/te/ridemonitor.onmicrosoft.com/oauth2/authresp
I'm not sure why, but the earlier redirect I had specified was:
https://login.microsoftonline.com/te/ridemonitor.onmicrosoft.com/oauth2/authresponse
which did not work.
The documentation/example page shows the link should end with authresp. Not sure if the earlier version was incorrect, or if I expanded the term 'authresp' to 'authresponse' when I set things up.

I wouldn’t go that far 😊
I just don’t know why in the world I wouldn’t have cut and paste the URL in the article, and then replaced {tenant}.
I wouldn’t spend a lot of time researching it. It’s probably user error…albeit the user doesn’t understand how it happened 😊.

Mark

From: Marilee Turscak - MSFT<EMAIL_ADDRESS>Sent: Tuesday, September 11, 2018 1:22:18 PM
To: MicrosoftDocs/azure-docs
Cc: Mark Olbert; Mention
Subject: Re: [MicrosoftDocs/azure-docs] Instructions Do Not Work (#14661)
@markolberthttps://github.com/markolbert it looks like the documentation specifies the right url. Are you saying that it had a different one listed before? (@davidmu1https://github.com/davidmu1 can you confirm?) If there is something missing here please let me know and I will continue this conversation and try to get the doc updated.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/14661#issuecomment-420412085, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIrJunS86qHgHBkVFmN9ryTmre9B-43Rks5uaBt5gaJpZM4WfHvz.

@markolbert You did not have to remove the '/te' part in the url?
I don notice you are using the 'old' login.microsoftonline.com domain, instead of the newer 'b2clogin.com'. Maybe that is the cause for different url requirements. Nevertheless, the article should mention this.

In fact, @kwaazaar, if I use the new, updated documentation -- i.e., with the urls based on login.microsoftonline.com -- Google complains about a redirect_uri mismatch. It only accepts the old url.

Is there something else I'm supposed to update in this hard-to-configure system so that Google accepts the new url? Or do I need to wait for some propagation time to pass or what?

Just to be clear, when I follow the instructions and set my Google credentials as follows:

I get the following error message from Google:

That’s an error.

Error: redirect_uri_mismatch
The redirect URI in the request, https://login.microsoftonline.com/te/ridemonitor.onmicrosoft.com/oauth2/authresp, does not match the ones authorized for the OAuth client. To update the authorized redirect URIs, visit: https://console.developers.google.com/apis/credentials/oauthclient/769952297467-qhqd9brt7pl4sra1hnjhnnqchce2h6f1.apps.googleusercontent.com?project=769952297467
Learn more
Request Details
client_id=769952297467-qhqd9brt7pl4sra1hnjhnnqchce2h6f1.apps.googleusercontent.com
redirect_uri=https://login.microsoftonline.com/te/ridemonitor.onmicrosoft.com/oauth2/authresp
response_type=code
scope=email profile
state=StateProperties=eyJTSUQiOiJ4LW1zLWNwaW0tcmM6YzhmZTI1ZWYtNzQ3Zi00ZjhlLWI0MjgtNjllZWQzMWU5ZGVkIiwiVElEIjoiODY1Y2NlZTUtZmU1NC00YjViLTllMWQtMjU5NjExYzg4NzU0In0
That’s all we know.

But if I configure my Google credentials this way:

Everything works as expected.
Anyone have any idea what's going on?

I have the exactly same experience  as markolbert (from javascript application). The instruction is clearly wrong about the reply url in case of google login.

Hi @piizei! I'm not sure what I did to fix the problem, but my project now connects to Google the way it should.
My Google credentials are:
Authorized javascript origins:  https://ridemonitor.b2clogin.com
Authorized redirect URIs:
https://ridemonitor.b2clogin.com/ridemonitor.onmicrosoft.com/oauth2/authresp
I >>think<< part of my problem had to do with how I'd configured stuff client-side (the configuration needs to be consistent with what you set up in the Google credentials portal...but if you make a mistake, the errors messages you get are of little help, IMHO). Here are the relevant (I think) client side configuration elements:
"CallbackPath": "/signin-oidc",
"Domain": "ridemonitor.onmicrosoft.com",
"EditProfilePolicyId": "b2c_1_ProfileEditing",
"Instance": "https://ridemonitor.b2clogin.com/tfp",
"RedirectUri": "https://localhost:44305/signin-oidc",

I hope some of this helps. Azure AD B2C is a real pain to get going, and could benefit from more example code, IMHO. Good luck!

Just to be clear, when I follow the instructions and set my Google credentials as follows:

I get the following error message from Google:

That’s an error.

Error: redirect_uri_mismatch
The redirect URI in the request, https://login.microsoftonline.com/te/ridemonitor.onmicrosoft.com/oauth2/authresp, does not match the ones authorized for the OAuth client. To update the authorized redirect URIs, visit: https://console.developers.google.com/apis/credentials/oauthclient/769952297467-qhqd9brt7pl4sra1hnjhnnqchce2h6f1.apps.googleusercontent.com?project=769952297467
Learn more
Request Details
client_id=769952297467-qhqd9brt7pl4sra1hnjhnnqchce2h6f1.apps.googleusercontent.com
redirect_uri=https://login.microsoftonline.com/te/ridemonitor.onmicrosoft.com/oauth2/authresp
response_type=code
scope=email profile
state=StateProperties=eyJTSUQiOiJ4LW1zLWNwaW0tcmM6YzhmZTI1ZWYtNzQ3Zi00ZjhlLWI0MjgtNjllZWQzMWU5ZGVkIiwiVElEIjoiODY1Y2NlZTUtZmU1NC00YjViLTllMWQtMjU5NjExYzg4NzU0In0
That’s all we know.

But if I configure my Google credentials this way:

Everything works as expected.
Anyone have any idea what's going on?

I am glad i found this post. I had the same issue. Instructions on the Microsoft Site do not work I was getting the same error with any other Identity provider (Google, Facebook etc.) - Added login.microsoftonline.com as an authorised domain and then added the same url (https://login.microsoftonline.com/te/[tenant].onmicrosoft.com/oauth2/authresp) and everything burst into life!


How to deal with unused fields / default values?

A usability disadvantage of visual editors of this kind is that all fields must be shown, regardless if they are in use or not. Take this extreme example - this minimal layer definition..

is currently being displayed like this:

All fields are there, although none of them is in use.
I'm not sure how to solve this. A couple of ideas come to mind:
A. Collapse sections, when unused

Advantage: Easy. Disadvantage: As soon as one field within a section is used, the whole section will load open.
Option: The section header could contain a subtitle such as "defaults in use in all fields".
B. Remove unused fields
A more radical approach: Why not remove "unused" fields altogether? (Maybe without a small defined set of important fields, such as the color of a fill layer.) We'd need a control to open a set of available fields and add them to the view.
The available fields could be just hidden in a collapsed list, or could be selected a modal menu, or could be added by drag & drop in a third sidebar hovering over the map. Interface examples: 1, 2, 3
Follow-up questions:

What happens with unused sections, i.e. sections with no field used? Hide them and automatically add them as soon as one field is added?
What happens with a field that I have added but don't use? Will it disappear again at next reload?

C. Style unused fields differently
A compromise could be to leave the fields there but style them differently: Grey them out or so.

A. Collapse sections, when unused

That's an idea that is technically possible. It collides with the feature that once you've collapsed a section it stays open for other layers as well but that could be solved.
In general if there are more smaller sections this becomes more useful.
:+1:

B. Remove unused fields

A more radical approach: Why not remove "unused" fields altogether? (Maybe without a small defined set of important fields, such as the color of a fill layer.) We'd need a control to open a set of available fields and add them to the view.

This is only viable if you use the JSON Editor. I am not sure if everyone is as comfortable with the spec as we are.

The available fields could be just hidden in a collapsed list, or could be selected a modal menu, or could be added by drag & drop in a third sidebar hovering over the map. Interface examples: 1, 2, 3

I have the gut feeling that this will complicate things even more.
:confused:

C. Style unused fields differently

That's perhaps the most straightforward to deal with this short term. Really make these properties less important. And group the properties not often used together.
:+1:

This is only viable if you use the JSON Editor. I am not sure if everyone is as comfortable with the spec as we are.

Of course this would only make sense with some kind of control to add the fields needed. In fact we already have such a function: The "Enable zoom functions control". It adds fields not needed previously.
Anyway, imagine the following scenario for B.:
A section just contains the used fields. Below those fields there is a big, centered Dropdown. It contains all names of unused fields for that section. Select one and it will be added above the dropdown (plus in the JSON), containing the default value. Easy.

A section just contains the used fields. Below those fields there is a big, centered Dropdown. It contains all names of unused fields for that section. Select one and it will be added above the dropdown (plus in the JSON), containing the default value. Easy.

True - but then you need to know what kind of property of the spec you need?
I also liked the exploratory nature of it when starting out - choose a feature and layer type and change all the values to learn what the properties can do.
I want to continue discuss/improve this. But I guess this won't make it into v1.0 but afterwards a v1.1 or so.

I implemented a version of your proposal C (lowest hanging fruit).
There is a bit a drawback with the opacity styling that when you focus on the field now it will only be highlighted when it is no longer the default value.


Added Image to Speech

script name -
image_to_speech.py
Brief about script
Using pytesseract converting the text from image to actual text string and then using pyttsx3 to use a speech engine for this text.
Issue no.(must) - #652

Cool, really amazing work


Initial Image Strength = 0.9999?

If the initial image strength is 1 (or close to 1), my understanding is that this essentially ignores the masked portion of the initial image in the diffusion process. I believe that the default value for strength on the SDXL Inpaint Pipeline (used on the demo) has a strength of 0.9999. Why does the grayed-out area still impact the image generated?

Hi @CesarERamosMedina, I think this might be an issue within diffuser itself. I did a test on the demo_gradio.py just to confirm: If you swap out the L140 init_img = grayscale_init_img with init_img = input_image.resize((1024,1024)) (without foreground decoloring), you will realize that the pumpkin preserves a lot of its original color like the following:

whereas using the original code gives us this:

We also do realize in our experiment mentioned in the paper that using completely noise to start with would give less hints about the illumination.

Yeah I remember seeing this in the paper (as well as the comparison when just doing random noise), but I was unsure on why this was the case since I'm not sure how much "information" the grayed out image contains. Thank you so much for the reply!

Oh, and really cool results!

One quick hypothesis:
int(30 steps * 0.9999) = 29 steps, so it seems that a bit of information might still be going through from the original image. Results would possibly differ with a strength being exactly 1.0

Hi @CesarERamosMedina. You are right, that is one of the reasonings. If you set it to 1, the base color prior does decrease a lot. However, I do still notice a little bit of pumpkin orange:

The shading on the object also becomes less apparent.
Anyways, thanks for the insight!

On the contrary, thank you so much for checking!

I was also wondering about this for some time, the reason there is some information leakage is because - as you said
CesarERamosMedina - strength  is by default set to 0.9999  in StableDiffusionXLControlNetInpaintPipeline. This is by the way different from StableDiffusionInpaintPipeline which sets it to 1.0 by default... So of course there is still a small amount of the latent code used to initialize the noisy latent, but the main reason lies in this line:
latents = noise if is_strength_max else self.scheduler.add_noise(image_latents, noise, timestep)

Where is_strength_max is set to strength == 1 in the __call__  function. So in fact when strength is 0.9999 , it uses a very noisy latent, while when strength is set to  1.0, it yields pure noise (thus no information leakage).
That was maybe an aspect that was overlooked!


Improve rendering & support for Safari browsers

Should re-examine this. Is it still a issue? Which pages if so?


make flow control stricter when receiving final offsets

Reject STREAM frames with a higher offset than a previously received highest offset.
Reject inconsistent final offsets.

Fixes #382.

Codecov Report

Merging #897 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #897      +/-   ##
==========================================
+ Coverage   90.47%   90.48%   +0.01%
==========================================
  Files          91       91
  Lines        6162     6168       +6
==========================================
+ Hits         5575     5581       +6
  Misses        380      380
  Partials      207      207

Impacted Files
Coverage Δ

internal/flowcontrol/stream_flow_controller.go
100% <100%> (ø)
:arrow_up:

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 816cf90...6c7fbdf. Read the comment docs.


docs: Update issue link in INSTALL.md and enhance key formatting in p…

…r_description.py

Preparing PR description...

Preparing PR description...

PR Description updated to latest commit (https://github.com/Codium-ai/pr-agent/commit/25d1e84b7fefc18bb526441e5661710b093a91b0)

Preparing PR description...

PR Description updated to latest commit (https://github.com/Codium-ai/pr-agent/commit/25d1e84b7fefc18bb526441e5661710b093a91b0)


Allow ModalPortal to mount at top level of application root.

Summary:
Feature Request: To allow ModalPortal to mount at top level of application root as it previously did in<EMAIL_ADDRESS>I am converting an application over to React 16 and I have run into an issue where there's a form that has a modal which has another form. Since the modal's form is now nested within the context of the parent form, the submit event bubbles to the outer form.
Current Behavior: ModalPortal (and thus its children) are descendants of the parent component.

Is it possible to return previous behavior or allow behind a flag?
Previous Behavior: ModalPortal mounted itself outside of the context.

Expected behavior:
To not mount the ModalPortal within the context of its parent component.

@Olliebaba Hi, sorry for the delay. It seems more like a bug introduced in the change to react 16. Probably we are not using the getParentElement() to set where it should mount the modal.
Modal.js#L190 perhaps we need to check if getParentElement is defined and use it instead of creating a new node.

Any update here? I have the same issue with 3.4.2.

@karaschee - I ended up placing the submit handler on the submit button as a onClick instead of on the form as a onSubmit. This resolved the issue for me.

On your onFormSubmit handler of the inner (modal) form add event.stopPropagation().

@vmasto - I am using redux-form and the submit handling does not expose the submit Event to me. Assigning the submit button an onClick in place of giving the form an onSubmit works without needing to e.stopPropagation()


Remove pxe_name and pxe variables.

These are not necessary for generating the pdsh machines file. Also,
to generate the machines file we don't need to gather facts from the
compute nodes in tests/test.yml, everything we need is in the
inventory already.

Thanks!


Add license verification document

I'm testing the verification of ASF header short form.
The document needs update.
Add tag "wip"

The document is ready for review. @mrutkows @houshengbo