Url filter to reduce number of indexed documents

Oftentimes a querystring or a hash are added does not really mean its a different page. Hence it produces a lot of duplicates. sometimes dozens.
Several ways of detecting urls that have them and are the same page content.

By domain
we can have a selected list of rules for common urls.
Examples:

like google docs. There each page of the google doc has a hash, but loads the entire doc. This is why at every switch of a page, the whole presentation gets indexed again.
google search have appendixes that do not tell more about the searched term, only about some session data and browser https://www.google.de/search?q=adsfsadf&oq=adsfsadf&aqs=chrome..69i57j69i60l2j69i61j69i60.401j0j7&sourceid=chrome&ie=UTF-8

Doing comparison of content and then abstract a rule to the url. So by looking at similar urls, seing what their indexed content is and if it has a similar content, abstracting to the url, if the querystring differentiates the page or is just useless.

may be relatively easy to implement for a couple of main websites, like facebook, google, twitter etc.

Hey @oliversauter , I'm not able to understand the problem completely.

In a google search URL, the search term changes which thus changes the URL, right?
Comparison of content most likely isn't possible, because content can be of any volume. Two very big pages can't be compared efficiently.

In a google search URL, the search term changes which thus changes the URL, right?

I mean Google Docs, not google search. In google search there is a similar problem though, as they add some sort of query string to the url, that is independent of the query and changes everytime the page is loaded. Even if the query is the same.
For example: https://www.google.com/search?q=testtest&oq=testtest&aqs=chrome..69i57j69i60l4j69i65.343j0j7&sourceid=chrome&ie=UTF-8

other use cases found in point 2 of this comment:
https://github.com/WorldBrain/WebMemex/pull/125#issuecomment-337279884

Module idea:
Querystring remover
Purpose: Remove query-strings, when visiting domains that with useless querystrings.
(e.g. Facebook, Google, Linkedin, Pinterest, Twitter)
Future ideas: We could make it an updateable list in DAT?

I'm unsure if all of the above examples have useless query strings. LinkedIn profile pages identify the profile, similarly for twitter and facebook.

Can you share a url where you saw that? Last time I checked, this kind of identifying information is all in the base URL not in the querystring.
Also, with this querystring remover must we need to write rules for every page differently. I'd start with the most common ones, FB, Linkedin, Google, Twitter etc.

So for example www.twitter.com/arpit_gogia would get reduced to www.twitter.com/arpit_gogia, am I understanding it right?

nope, I am talking about "a querystring or a hash"(es)
from `https://www.google.com/search?q=testtest&oq=testtest&aqs=chrome..69i57j69i60l4j69i65.343j0j7&sourceid=chrome&ie=UTF-8``
To  https://www.google.com/search?q=testtest

or from https://worldbrain.io/for_investors/#presale
to https://worldbrain.io/for_investors/

Ah now I understand it.

The approach that I'm thinking is I'll split the URL with respect to '/' and join all the parts as long as none of them have a '?'
Consider 'https://www.abc.com/def/ghi/query?jkl=mno' will become ['https:', '', 'www.abc.com', 'def', 'ghi', 'query?jkl=mno'] and then iterate through the parts and join them with a '/', while checking if each part has '?'. If it does have '?' then I stop joining and return whatever was joined.
Will remove http:// or https:// before splitting the URL and add it back in the end.

Having separate rule sets for specific websites will be convenient as long as the number of such websites is small.

That seems a bit expensive at first glance.
Why not just taking a split() function and split it on the first "?" or "&" "#", these are mostly the parts where the querystring begins.
Yes, for now those numbers will be small, but the most important pages. We later can look into different ones. Maybe 10-20 for now.

Ah the question mark splitting sounds better 😄
@poltak where can I insert the code?

@arpit We're already using this nice package package in other parts of the code related to URL processing, which includes a removeQueryParameters option. You can supply a RegExp/string Array of undesirable query params and it will remove them, not touching unrelated params. Here's an example you can play with in browser
I suppose we would need to maintain a dictionary of domain keys to list of undesirable query params as values somewhere, which it would normalize a passed-in URL against. We could probably just keep that in code to start with, but allowing parsing of external dictionaries (like @oliversauter suggested) would be a good later improvement and something to think about.
RE where to put: probably best in a new src/util/ module, as it's not related to any existing code. Or put in a top-level src/ dir module if it will need a lot of code.

So the main task then becomes creating that list. After that it's just manual checking to match the domain key to it's undesired values and passing that to normalize-url.

@poltak Is it also possible to set other rules to the removeQueryParameters function?
It seems a bit expensive to check for all query parameters separately and leave the desired in, as opposed to just removing them with a split?
I would agree to first start with the hard coded list and make sure that the process itself works. I have a few candidates already for you:
Google search: https://www.google.com/search?q=gogsadfd&oq=gogsadfd&aqs=chrome..69i57j69i60l5.804j0j7&sourceid=chrome&ie=UTF-8
Google docs: https://docs.google.com/presentation/u/1/d/17WS3MtCRwvVYbNcCadVhzYUrvis9AvQ7xK27-rpvLKU/edit#slide=id.p (everything after #)
ALL google maps urls, but only for import process, not for regular visit: https://www.google.com/maps/dir/Starbucks,+Spear+Street,+San+Francisco,+CA/2560+Bancroft+Way,+Berkeley,+CA+94704/@37.8656649,-122.2682432,15.93z/am=t/data=!4m14!4m13!1m5!1m1!1s0x8085808f126f966f:0xc8bd703a10a5ef8f!2m2!1d-122.3922476!2d37.7912977!1m5!1m1!1s0x80857c2f656bd123:0xa9a9339f694c75c9!2m2!1d-122.2576917!2d37.8688033!3e3?hl=en
Another unrelated question:
What happens to the alredy indexed terms of a document, if a person reloads/revisits the doc, and those terms are not there anymore? Are all terms first deleted and then reindexed or do the old ones stay and it is essentially an append-process of the differing terms?

It seems a bit expensive to check for all query parameters separately and leave the desired in, as opposed to just removing them with a split?

Pretty sure it would be doing that. Not 100% sure what the concern is here. The main concern is we don't remove query params that have meaning in the context of the extension.

So the main task then becomes creating that list. After that it's just manual checking to match the domain key to it's undesired values and passing that to normalize-url.

@arpitgogia yeah, it should be fairly simple once the data is there. Function takes a URL, maybe extracts the domain, then runs the domain against the dictionary, returning the same URL post-processing. Bigger question is how we use it in the context of the rest of the app. We would probably pass URLs to this module first thing on page visit and continue as normal on the returned value. Imports would have to do it when forming the imports list.

Pretty sure it would be doing that. Not 100% sure what the concern is here.

Say in the import process we would need to check 25k documents, might take a bit? Or is that a simple/quick process?

In a general way splitting and iterating shouldn't take much time. But yeah if there's a better method we should use that.

Here's an idea, whenever we see a URL for the first time, we store it as it is. The next time a similar URL comes in, we compare it with the existing one to see which parameters have changed and then fix those parameters to be retained thereon after. Sounds a bit ...... but it'll work.

good idea, but for now it seems a bit overhead, also because we need to define what similar means. And this can easily spin out of control. Also not suitable for the stage of filtering out items from the import (which is the main use case for now, as we want to reduce the number of urls a user has to import)
For now we need to remove the strings of the most used stuff, like google, facebook, twitter etc.

I'm thinking the structure of the filter list should be
[
    {
          'query_params': ['ab', 'cd', 'de'...],
          'fragments': ['abc', 'def', 'ghi']
    },
    {
    }
    ...
]

Can you give an example of the query params and fragments and how this would affect, say a google search url?

I have seen very few URLs with both query params and fragment name. For example a google search URL https://www.google.co.in/search?q=nasa+goddard&oq=nasa+goddard&aqs=chrome.0.0l6.12898j0j1&sourceid=chrome&ie=UTF-8 doesn't have a fragment '#'
The above described format will help in removing whichever out of the two or even both from the URL
More info on '#' and '?' is available here https://stackoverflow.com/questions/12682952/proper-url-forming-with-query-string-and-anchor-hashtag and here https://stackoverflow.com/questions/29841137/what-is-the-behavior-of-hash-in-query-string

i just played around with many search pages, and whenever they use a search, they make a q=test as search query strings, all the rest is really unimportant. So maybe turning around the removal and just remove everything except this one.

This fairly recent discussion clears up some hidden semantics behind some common google search query params, particularly this comment.
RE that list @arpitgogia: You would need some way to associate the domain/page to the query params, so a dictionary-like data structure would be more appropriate to afford easy lookups (so maybe an Object, or more appropriate  Map)

@poltak my bad,  of course there will be a domain key.
[
    {
          'domain': 'xyz.com'
          'query_params': ['ab', 'cd', 'de'...],
          'fragments': ['abc', 'def', 'ghi']
    },
    {
    }
    ...
]

Out of the above Twitter seams the easiest. Their queries are pretty clean.
{
    'domain': 'twitter.com',
    'query_params': ['src']
}

For Facebook
{
    'domain': 'facebook.com',
    'query_params': ['notif_t', 'fref', 'ref']
}

Google Docs doesn't seem to have any unnecessary parameters
I'll need some help figuring out Google Searches, they are too varied.
For Google Maps
{
     'domain': 'maps.google.com',
     'query_params': ['hl']
}

If anyone else finds some more unnecessary please add them here.

As just discussed in Slack, it will be hard to really remove all query parameters from a page like twitter or FB, if we identify them one by one. They are dynamic and different for certain sub pages. So if we forget one, the whole thing does not make sense anymore.
In most of the cases simply splitting all query strings off does the trick and this is also how I would do the routing and the rules. Not the queryparams.

For google searches, we need to remove everything after the first &,
For Facebook we can remove all querystrings,
only for the imports we need to remove ALL google maps links, so everything that has
ALL hashes need to be removed for EVERY url.

@oliversauter Quite confused with these ideas.

For google searches, we need to remove everything after the first &,

This would be really dangerous as you're discarding everything apart from the first param (after the ?). I presume your intention is just to preserve the q param, but there is not guarantee that this will always be the first query param. Param ordering should be assumed to be arbitrary

For Facebook we can remove all querystrings,

Why would you want to do this? Why not just find the ones that have meaning to us? (example is the q param on facebook.com/search/top route)

only for the imports we need to remove ALL google maps links, so everything that has

Although not related to this work, this is probably a good idea for now as this is a good example of a page that won't be useful unless we run the JS (although even with JS, not sure there's much useful content; we should talk some more about sites like gmaps later). But looking into gmaps query string, things are a bit more complicated compared with most sites. You can definitely pass them in (try http://maps.google.com/?q=New+York), but they should replace the URL state pretty fast with their own language. This replaced URL is the one that seems to ultimately get stored in browser history, at least for me.

ALL hashes need to be removed for EVERY url

Agree with this. A lot of the time will not represent any meaningful information for us. Although one thing to be aware of: it will mean any site/SPA that uses hash-based routing will not be supported by our extension. What are some big/popular sites that do hash-based routing? Doubt there is many.

it will be hard to really remove all query parameters from a page like twitter or FB, if we identify them one by one. They are dynamic and different for certain sub pages. So if we forget one, the whole thing does not make sense anymore.

You will want to invert the patterns used for query params. So say you only want q and oq params on a site: your query params field in the domain/URL list for that site should instruct "remove all from query string apart from params q and oq", which is quite do-able.

@arpitgogia Really looking for a dictionary-like data structure for this list, as the `domain` field should be unique and will be used for lookups. As a dictionary, that example you put up earlier would look something like this in JSON:
{
     "facebook.com": {
         "queryParams": ["notif_t", "fref", "ref"]
    }
}

or (assuming you don't have any other data per domain/URL):
{
     "facebook.com": ["notif_t", "fref", "ref"]
}

The main point being the domain/URL is key.
In JS, I would recommend using the Map object.
Also query-string is a popular package that may be of use to you here, which we're also using (although normalize-url should be able to do everything; just another possibility to avoid any manual string manipulation)

Just as a heads up https://t.co/{something} doesn't get split with the current regex on url splitter. and t.co is owned by Twitter and is used from what I can tell to link people to external content (possibly more) so I am not sure what we should do about that?
In example. https://t.co/hFoN0QthgT links to https://www.sciencedaily.com/releases/2017/09/170912093122.htm

Agree with this. A lot of the time will not represent any meaningful information for us. Although one thing to be aware of: it will mean any site/SPA that uses hash-based routing will not be supported by our extension. What are some big/popular sites that do hash-based routing? Doubt there is many.

Technically hashes are used only for internal linking in a page, like what happens with Wikipedia sections. So if we are already indexing the whole page then it is fine to remove all hashes because a hashed URL is just a specific section/part of the page we probably indexed.

@arpitgogia Really looking for a dictionary-like data structure for this list, as the domain field should be unique and will be used for lookups. As a dictionary, that example you put up earlier would look something like this in JSON:

Again my bad, I use dictionaries all the time in Python, silly syntactical mistake on my end. Yes the idea will be to keep the domain as the key.

Technically hashes are used only for internal linking in a page, like what happens with Wikipedia sections

It's a common use, but as the hash fragment is just another part of URL state, it can be used for anything on client side. With SPAs, which generally use some client-side router, if hosted on some static hosting site that doesn't support server-side configuration (github pages is a good example) they will use a hash-fragment-based router as the server is generally set up to try to resolve routes to HTML files by default.
eg: I have an SPA with routes / and /settings, but only a single index.html. Without proper server config, the server may try to respond with index.html for route / and settings.html for route /settings. If we put those routes into hash state and only manage them on client-side, I can have routes / and /#/settings which the server, without additional config, will respond with index.html for both (then the JS takes the hash state and chooses what to render based on that).
Another example that uses hash-based routing is our extension. Go to the settings page and click some links in the sidebar and watch the URL. Anyway, pretty uncommon use, but interesting to look at. We could look at ways to support these sites later on.
@swissums nice find. I need to make an issue about preprocessing stuff in general I think, so I'll add this in there.

@poltak

Why would you want to do this? Why not just find the ones that have meaning to us? (example is the q param on facebook.com/search/top route)

Yeah my suggestion here was a bit too rough in removing those. Your suggestion of inverting the detection and removing everything except the querystrings we allow, is a good one.
So for google, facebook and twitter it would then be the standard search querystring.
And ONLY for the importer, removing google maps urls entirely. Those will take a lot of time, as they create a new url everytime you change the search parameters slightly or zoom in or move the canvas.
How about the MVP is just about those 4 rules for now. These are for sure the most commonly used websites and we can go from there?
I think this would be another library we could factor out that would be helpful to people. Basic rules on how to treat query-strings on different domains in order to identify unique content.

And ONLY for the importer, removing google maps urls entirely.

Have a look at the terms that get extracted from google maps pages on visit (the terms field in the object that gets logged when indexing). For me it seems to be pretty useless stuff, i.e., not actual place names or anything, just words that appear elsewhere in the page. As you move the map around and index more (if you switch to another tab then switch back, it'll reindex the new location), the extracted terms don't change much, as they're all from static elements not in the actual map itself.
Why don't we just ignore/blacklist google maps in all scenarios for now, as it's just polluting the index right now on page visits, decreasing accuracy of other searches?

Why don't we just ignore/blacklist google maps

Good idea, we can make it standard blacklist like localhost.

All right so the final guidelines put up by @oliversauter along with blocking maps.google.com, is that all?

@arpitgogia Don't worry about the google maps thing. I'll put that into default blacklist

Ok. This has now also been implemented. I close it but opnened a new issue where we can collect querystrings and other filter methods to keep our DB clean: #170


[ new ] Add the swirl library

This looks nice and well-documented. Thanks for adding it to the pack collection.

Well, actually, the incompleteness of documentation was the only reason why I didn't do this earlier, but now I think that it's better to be usable easily in the first place, documentation should follow


chore(deps): update common-dev-assets digest to ae92dfa

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
6db9456 -> ae92dfa

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

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


feature request: attach already downloaded files or use company wide cache

Description of feature request
in #44501 there is a temporary problem with an download server.
for this i can manually download  the file as an workaround - but i like to process it with an formula to have it "on file" in my installed casks.
instead of downloading it should use an alternate location.
for example:

as parameter:
--source_file=[local_path_to_file|url}

as parameter or as default parameter in ENV HOMEBREW_CASK_OPTS:
--source_folder=[local_path_to_folder]

it should skip the download from original place and lookup in source_folder for the file or use the source_file and place the file into the /caches/ dir and and folllow the other steps in formula
with this you can:

predownload a file / some files
don't break your install scripts when one server is down
create an company wide local cache (if it is on a file server or NAS)

example usages:
brew cask install sweet-home3d --source_file=/Users/muescha/Downloads/sweet-home3d--5.7.dmg

brew cask install sweet-home3d --source_folder=/Users/muescha/Downloads/

brew cask install sweet-home3d --source_folder=/Volumes/NAS/casks-predownloads

export HOMEBREW_CASK_OPTS="--source_folder=/Volumes/NAS/cask-predownloads"
brew cask install sweet-home3d

PS:
i expected this option also with the brew cask fetch command where i can just place an file into the .../caches/ folder
Output of your command with --verbose --debug
brew cask install sweet-home3d --verbose --debug
==> Hbc::Installer#install
==> Printing caveats
==> Hbc::Installer#fetch
==> Satisfying dependencies
==> Downloading
==> Downloading https://downloads.sourceforge.net/sweethome3d/SweetHome3D/SweetHome3D-5.7/SweetHome3D-5.7-macosx.dmg
Already downloaded: /Users/muescha/Library/Caches/Homebrew/Cask/sweet-home3d--5.7.dmg
==> Downloaded to -> /Users/muescha/Library/Caches/Homebrew/Cask/sweet-home3d--5.7.dmg
==> Verifying download
==> Determining which verifications to run for Cask sweet-home3d
==> Checking for verification class Hbc::Verify::Checksum
==> 1 verifications defined
Hbc::Verify::Checksum
==> Running verification of class Hbc::Verify::Checksum
==> Verifying checksum for Cask sweet-home3d
==> Note: running "brew update" may fix sha256 checksum errors
Error: Checksum for Cask 'sweet-home3d' does not match.

Expected: 5440e833e771acb390bb31b6553d86869f36a9ea699be49ba5176f9851c01d09
Actual:   7a07d3f7cca5c0b38ca811984ef8da536da32932d68c1a6cce33ec2462b930bf
File:     /Users/muescha/Library/Caches/Homebrew/Cask/sweet-home3d--5.7.dmg

To retry an incomplete download, remove the file above.

/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify/checksum.rb:42:in `verify_checksum'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify/checksum.rb:22:in `verify'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify.rb:21:in `block in all'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify.rb:19:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify.rb:19:in `all'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:138:in `verify'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:52:in `fetch'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:75:in `install'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:20:in `block in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:14:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:14:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:35:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:98:in `run_command'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:168:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'
Error: Kernel.exit
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:173:in `exit'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:173:in `rescue in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:156:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'

Ser HOMEBREW_CACHE to another directory. man -P 'less -p "   HOMEBREW_CACHE"' brew.

this changes the cache for all files - but i like only some files used from different (download) location instead downloaded.

ok - you are right - bad idea - i injected it into the cache just with cp and then installed it:
cp ~/Downloads/SweetHome3D-5.7-macosx.dmg /Users/muescha/Library/Caches/Homebrew/Cask/sweet-home3d--5.7.dmg

brew cask install sweet-home3d
==> Satisfying dependencies
==> Downloading https://downloads.sourceforge.net/sweethome3d/SweetHome3D/SweetHome3D-5.7/SweetHome3D-5.7-macosx.dmg
Already downloaded: /Users/muescha/Library/Caches/Homebrew/Cask/sweet-home3d--5.7.dmg
==> Verifying checksum for Cask sweet-home3d
==> Installing Cask sweet-home3d
==> Moving App 'Sweet Home 3D.app' to '/Applications/Sweet Home 3D.app'.
🍺  sweet-home3d was successfully installed!

PS: the same i can do with an company wide local cache


[14.0] ISPN-15229 CVE-2023-4487 HTTP/2 Rapid Reset Attack

https://issues.redhat.com/browse/ISPN-15229

Integrated into 14.0.x, thanks @tristantarrant !


Possibility of adding custom filepath

Can you please replace your constructor with this:
    public function __construct($filepath)
    {
        $this->file = ($filepath) ? $filepath : storage_path('app/conf.json');
        if (empty($this->config)) {
            if (!file_exists($this->file)) {
                file_put_contents($this->file, json_encode([]));
            }
            $this->config = collect(json_decode(file_get_contents($this->file), true));
        }
    }

or other change so the config path to be customizable?

Please, make Pull Request with your changes.
We will review the changes and accept them.

I'll try... I haven't made a pull request before.

Good chance to try ;)

When I try to commit my changes I get:
remote: Permission to gaaarfild/laravel-conf.git denied to axelex.
fatal: unable to access 'https://github.com/gaaarfild/laravel-conf.git/': The requested URL returned error: 403

Yes. You have to fork repository first to your account. Make changes there and then create full request from your fork to master of my repository.

I did that. How soon can someone have a look over the changes?

@axelex I've made a new release so now you can publish config file and set your configuration file path there easily.

Thanks a lot @gaaarfild!
I will look over it and see how it works.


Authoring Libraries

Authoring Libraries
A little bit of more explanation was added as well as a warning regarding to issue 4824

@marioacc awesome thank you for jumping on this, I will review shortly. Can you sign the CLA? Once you've done it once, you should be all set for future contributions from the same GitHub account.

@marioacc the first thing I'm noticing is the CI failure. This is due to simple markdown formatting issues:
><EMAIL_ADDRESS>lint:markdown /home/travis/build/webpack/webpack.js.org
> markdownlint --config ./.markdownlint.json *.md ./content/**/*.md

./content/guides/author-libraries.md: 31: MD031 Fenced code blocks should be surrounded by blank lines
./content/guides/author-libraries.md: 38: MD031 Fenced code blocks should be surrounded by blank lines
./content/guides/author-libraries.md: 94: MD031 Fenced code blocks should be surrounded by blank lines
./content/guides/author-libraries.md: 96: MD031 Fenced code blocks should be surrounded by blank lines
./content/guides/author-libraries.md: 111: MD031 Fenced code blocks should be surrounded by blank lines
./content/guides/author-libraries.md: 221: MD031 Fenced code blocks should be surrounded by blank lines
./content/guides/author-libraries.md: 269: MD031 Fenced code blocks should be surrounded by blank lines
./content/guides/author-libraries.md: 113: MD032 Lists should be surrounded by blank lines
./content/guides/author-libraries.md: 130: MD032 Lists should be surrounded by blank lines
./content/guides/author-libraries.md: 271: MD032 Lists should be surrounded by blank lines

If you could start by resolving those, that would be great.

@skipjack I already have signed the CLA, so when I click in the Details link, it tells me the CLA is already signed.
I will solve the markdown issues.

@marioacc the issue seems to be that one of your commits was authored with a different user (this can happen if you push from work for example). If you rebase on master with your main account, which we have to anyway to resolve the conflicts, it should fix the CLA issues.

@marioacc thanks for fixing the markdown issues and the CLA thing too. If you could rebase once more on master to resolve the conflicts caused by the restructuring in #1490, that would save me time 🙏. Not a big deal if not, once you make the requested changes we should be able to get this merged 👍 .

@skipjack Can you please take a look at the project, I am not sure If I did the rebase in a proper way.

Ah, yeah something's off here. I'll pop over to you're repo and see if I can fix it. Typically rebasing shouldn't create an extra commit. When you rebase on master you'd typically have to git push --force origin [branch-name] to fix the branch after. It looks like you may have done the rebase correctly but then pulled and pushed instead of just force pushing.

@marioacc the issue should be fixed now. All I did was...

Backed up your current master branch to a backup branch (which I can't push because I don't have permission on your repo to add new branches).

Then git cherry-pickd your most recent commits.
Then git push -f origin master to update your master branch.

Please double check that everything is as it should be. Like I said, I still have a backup locally so we can restore anything else if necessary.

@skipjack Thank you very much, I am sorry for the complications my rebase caused.
I took a look over the author-libraries.md in src/content/guides and the old one in content/guides and they are equal.
I will delete the content folder to be in sync with the original webpack repo.

@marioacc somehow things got a bit funky here again. I'll try to resolve and then review, please don't merge or push anything else until that's done.

@marioacc I reviewed and the content was great. Just added one commit to clean things up a bit before I merge.
@TheDutchCoder if you wanted to review again that would be great. I'm going to merge this once the build passes just for the sake of pushing things forward as I think it's in a pretty good state. However if you catch anything, one of us can always submit a follow up PR.

Ok ran the tests locally as we're still seeing network issues on travis that cause the lint:links / hyperlink script to timeout. Everything ran fine with the exception of webpack-contrib/npm-install-webpack-plugin#118 which doesn't relate to this PR. Merging...


need CONTRIBUTING.md

here are some topics we might need to cover, its up to you guys to decide what you want to see here @hamishwillee @tcr3dr

[ ] test system - architecture and test-types overview
[ ] test system - how to run locally
[ ] test system - how to write tests
[ ] how to rebuild dronekit-python
[ ] code style / guidelines
[ ] API documentation guidelines
[ ] descriptive commit messages
[ ] contributing to the documentation

@mrpollo @tcr3dr
This content should go into the guide here and CONTRIBUTING.md should be a thin link to that guide.
I've modified the list above to include a few topics  we already cover, and to make it clear that there is a difference between running tests locally and rebuilding dronekit-python locally - though that might not be true.
Typically you'd also include some words about how we expect people to work with our master branch (we have) and who can merge. We might also have some words on how you can become someone able to merge changes.
When the list is done, I can "drive" the docs. Would be good to have some bullet point docs from you guys about the first three test topics, and a brief discussion about what you want to see in each.

@hamishwillee I began a branch here that should fill in some of this info: https://github.com/diydrones/dronekit-python/pull/212
Shall we work out of this same PR to update the documentation quality enough to be merged?

@tcr3dr

I began a branch here that should fill in some of this info: #212
Shall we work out of this same PR to update the documentation quality enough to be merged?

Yes. Good start.
Unfortunately I'm not going to have time in the short term to look at this "properly". I have added some notes that I help though. My priority for the coming week will be getting a draft of the cloud quickstart and my ardupilot wiki editor role.
In the short term just let me know if anything you write needs a review.


Can't install addons on new Chef server

Chef Server Version
chef-server-core_12.19.31-1_amd64
Platform Details
Ubuntu 18.04
Configuration
addons['install'] = true

Scenario:
Automate the installation of plugins.
Steps to Reproduce:
$> wget https://packages.chef.io/files/stable/chef-server/12.19.31/ubuntu/18.04/chef-server-core_12.19.31-1_amd64.deb

$> dpkg -i chef-server-core_12.19.31-1_amd64.deb

$> chef-server-ctl reconfigure

Actual Result:
Starting Chef Client, version 14.11.21
resolving cookbooks for run list: ["private-chef::default"]
Synchronizing Cookbooks:
  - private-chef (0.1.1)
  - enterprise (0.14.1)
  - runit (4.1.1)
  - packagecloud (1.0.1)
  - yum-epel (3.3.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Recipe: private-chef::default
  * directory[/etc/opscode] action create (up to date)
  * directory[/etc/opscode/logrotate.d] action create (up to date)

  ================================================================================
  Recipe Compile Error in /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb
  ================================================================================

  Net::HTTPServerException
  ------------------------
  404 "Not Found"

  Cookbook Trace:
  ---------------
    /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/add_ons_wrapper.rb:68:in `block in from_file'
    /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/add_ons_wrapper.rb:62:in `each'
    /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/add_ons_wrapper.rb:62:in `from_file'
    /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/bootstrap.rb:24:in `from_file'
    /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb:164:in `block in from_file'
    /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb:147:in `each'
    /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/default.rb:147:in `from_file'

  Relevant File Content:
  ----------------------
  /var/opt/opscode/local-mode-cache/cookbooks/private-chef/recipes/add_ons_wrapper.rb:

   61:
   62:    node['private_chef']['addons']['packages'].each do |pkg|
   63:      artifact_info = Mixlib::Install.new(
   64:        channel: :stable,
   65:        product_name: pkg.split(/(chef-|opscode-)(.*)/).last,
   66:        product_version: :latest,
   67:        platform_version_compatibility_mode: true
   68>>     ).detect_platform.artifact_info
   69:
   70:      pkg_file = File.join(addon_path, File.basename(artifact_info.url))
   71:
   72:      remote_file pkg_file do
   73:        source artifact_info.url
   74:        checksum artifact_info.sha256
   75:      end
   76:    end
   77:  else

  System Info:
  ------------
  chef_version=14.11.21
  platform=ubuntu
  platform_version=18.04
  ruby=ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
  program_name=/opt/opscode/embedded/bin/chef-client
  executable=/opt/opscode/embedded/bin/chef-client

  Running handlers:
    - #<Class:0x00000000043572e0>::AddonInstallHandler
  Running handlers complete
  Chef Client failed. 0 resources updated in 03 seconds
[2019-03-26T21:05:41+00:00] FATAL: Stacktrace dumped to /var/opt/opscode/local-mode-cache/chef-stacktrace.out
[2019-03-26T21:05:41+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2019-03-26T21:05:41+00:00] FATAL: Net::HTTPServerException: 404 "Not Found"

@PrajaktaPurohit any updates? 😅

Sorry for the delay! Closing since Chef-Manage and Push Jobs are deprecated and End of Life.


Throwing an exception on selection of a QueryableValue

To try to make things clearer when the user does something incorrect, we wanted to throw an exception that more clearly explained what a user is supposed to do.
Also tweaked some exceptions to get a better base exception class

How do we get the same original error for IQueryableList<>.

I added a test for IQueryableList<> and added the code to throw when detected.

LGTM - there are still various scenarios this doesn't catch, such as:
var expression = new Query()
      .Repository("foo", "bar")
      .Issue(50);

But this is a good start.


Add USE_SSL Flask config variable to turn on/off SSL instead of only app.debug

Proposing adding some sort of Flask config variable/flag to force SSL redirect on or off. I think this is useful for a case where you have a staging server, where you might want SSL but want to also have debug enabled, for debugging server exceptions.
If USE_SSL is not defined, default to the previous logic of looking at app.debug

is this still the prefered way to get ssl on our flask app or is there a better way now ?

This is a great idea. Closing, because there is a merge conflict. Wouldn't mind revisiting this.


As a mum, I want to search for kids-friendly recipes

so that I can | prepare food that is to my kids' liking.

Completed


Module build failed: Error: Cannot find module 'eslint-config-standard-jsx'

I just clone, install dependencies and ran npm run dev. I'm using master 96bd1cd

What version of npm2 are you on?

I had this yesterday too. I was running whatever npm version came with node
v5.4.0. Problem went away after using nvm to install and switch to node
v5.7.0.
On Sun, 28 Feb 2016, 3:55 a.m. David Zukowski<EMAIL_ADDRESS>wrote:

What version of npm2 are you on?
—
Reply to this email directly or view it on GitHub
https://github.com/davezuko/react-redux-starter-kit/issues/609#issuecomment-189778032
.

@davezuko I have node 5.4.0 and npm 2.14.15

@rkmax Unfortunately I've stopped trying to maintain both npm 2 and 3 due to severe differences in package resolution. If a fresh npm install does not solve the issue, then I'd chalk it up to npm2, in which case you will probably just have to bite the bullet and install it yourself. If you are willing and able to upgrade to npm3, and still experience the issue, I will gladly look into it further.

Thanks @davezuko I'll give a try to npm3

Yeah npm3 solve the issue. I just downgrade to npm2 because npm3 is slower than npm2 even with npm set progress=false


Migrate compiler tests to "normal" unit tests

This is required for #142 as we cannot rely on the embedded Kotlin compiler to the same degree as when targeting the JVM backend, but it also becomes hard or impossible to execute the compiled target's code.
However, Kotlin has a mechanism which is built-in to do this for us: regular tests!
Regular tests written in commonTest will run on all supported targets of the host OS. Since Poko doesn't vary its IR based on backend, we really only need one JVM target, one JS target, and one native target to run each test. This will always be doable on every host OS since linux works on linux, macos on macos, and mingw on windows. JS and JVM work everywhere.
This obviously only works for tests that have successful processing of the annotation. Failing tests can remain executed by the embedded Kotlin compiler, or migrate to a functional test if we want to test it across backends.
I also think this should come with removal of running these tests across multiple JDKs. Since the IR is not varied across different JVM targets, there's little reason to suspect the runtime behavior would be affected by different JVM versions as the reliance of platform APIs is near zero. Technically it is exactly zero as the APIs are all Kotlin APIs which should be guaranteeing behavioral compatibility across JVM versions.
Now maybe in the future when targeting 17 or higher we start using invokedynamic bytecodes on the JVM leveraging Java's ObjectsMethods class which is what records use, but until that day varying the JDK is mostly redundant.

regular tests!

I take it you mean, create test @Poko classes and write tests that instantiate them and assert against those instances? I.e. how the sample tests currently work, but covering all the cases the compiler tests currently cover?
That would definitely be easier to read, understand, and write.
We'd lose two pretty nice things though:

The ability to debug the compiler plugin. I almost always cause compiler errors with new IR code, and it's massively valuable to be able to breakpoint the Poko plugin to find out what's happening. Maybe we can leave a skeleton of the current setup so it's easy to spin up temporary tests for debugging?
The ease of running the tests multiple times with different compiler settings. I used to test both IR and non-IR compilation, and soon will want to test both K2 and non-K2 compilation. We could use a Gradle property and multiple CI builds to cover different types of compilation, but is there any way we could still run multi-compilation tests locally with one command?

or migrate to a functional test if we want to test it across backends

Testing failure across backends sounds important, not sure I understand what you're envisioning here though?

Since the IR is not varied across different JVM targets

Are you saying that I'm not varying the IR I've written across different targets, or that the Kotlin compiler doesn't ever convert the same IR to different bytecode based on JVM target? If the latter, do you have a link to where that's decided/described? That kinda bums me out, I assumed the Kotlin compiler would produce JVM target-specific optimizations somewhere along the line.

The ability to debug the compiler plugin.

You can still do this with a normal build but it's definitely more complicated. I tend to put all of the tests in this regular form, but leave one using the old/current mechanism. There will still be a bunch in the current mechanism for testing failures since it's the easiest way.

The ease of running the tests multiple times with different compiler settings.

This is still easy. They become targets!
So for the K2 example you'd do:
jvm()
jvm("jvmK2") {
  compilations.all {
    compilerOptions.freeCompilerArgs += "-use-k2"
  }
}

Can do the same with any variation we want to support provided it can be achieved with compiler options or the DSL.

Testing failure across backends sounds important, not sure I understand what you're envisioning here though?

Nested Gradle builds which are puppeteered by Gradle TestKit.
This is still somewhat testing Kotlin, though. I suspect we can rely on the JVM-based embedded compiler tests for scenarios that fail to compile and reasonably assume it will also work for the other backends.

Are you saying that I'm not varying the IR I've written across different targets, or that the Kotlin compiler doesn't ever convert the same IR to different bytecode based on JVM target?

At this time, yes. Mostly because you don't use anything interesting because the behavior of the generated code is so basic. The only candidate is probably the string concatenation for toString could use invoke-dynamic and StringConcatFactory.

If the latter, do you have a link to where that's decided/described?

I only know from having worked on some of the compiler intrinsics, but they're all available from all versions of the JVM supported now. For example, the Kotlin code 0L.hashCode() used to inline the implementation, but now it calls into Long.hashCode on Java 8 and newer. I don't recall any others that would apply which only work on newer versions.
That being said, this is another thing that still can technically be supported but maybe we reduce the versions tested since it's extremely unlikely anyone is using anything but the generally-agreed-upon LTS releases that JDK vendors put out, or the newest version of the OpenJDK.

but leave one using the old/current mechanism

Sounds good 👍

This is still easy. They become targets!

Oh perfect, I didn't know you could duplicate the same target like this.

I suspect we can rely on the JVM-based embedded compiler tests for scenarios that fail to compile and reasonably assume it will also work for the other backends.

Ah you're right. All my failures are in IR compilation, which I believe would happen before anything platform-specific happens anyway. Eventually they'll mostly move to FIR which is even earlier.

The only candidate is probably the string concatenation for toString could use invoke-dynamic and StringConcatFactory.

I think what's not clicking for me is: why doesn't irConcat already result in bytecode using StringConcatFactory when targeting Java 9+? Everything you say about Long.hashCode on Java 8 sounds to me like it should apply to string concat on Java 9.
Anyway, I'm good with this plan!

That being said, this is another thing that still can technically be supported

Let's just focus on the migration and the latest Java target for now. Easy to play with re-adding a few more targets and seeing how that affects CI time later.
Does commonTest need to go in a separate module so the compiler plugin can be applied, or is there a way to apply it within its own module's tests? If the former, probably the new sample module(s) becomes the home of (most of) the tests.
Hopefully migrating the existing tests is fairly easy: All the private compareTwo*Instances signatures should be reusable, but their internals need to be rewritten.

I think what's not clicking for me is: why doesn't irConcat already result in bytecode using StringConcatFactory when targeting Java 9+? Everything you say about Long.hashCode on Java 8 sounds to me like it should apply to string concat on Java 9.

Punting this to #204 or even just a new feature request. I honestly am not 100% sure how it works so will have to find out.


Unknown Linter error

I installed, gometalinter and added the following json:
{
    "Enable": ["golint", "dupl", "deadcode", "go tool vet --shadow", "structcheck", "errcheck", "unconvert", "goconst"]
}

When I run gometalinter I'm getting the following error:
gometalinter: error: unknown linters: go tool vet --shadow
This was working fine last week, did something change ?

I don't believe that ever would have worked. Enable is a list of linter IDs, so to enable vet shadow you would need to use vetshadow.


Namespace is missing in documentation

It works like a charm but it took me some time to find out the missing namespace: xmlns:svg="clr-namespace:XamaRed.Forms.Svg;assembly=XamaRed.Forms.Svg"
If you can add this to your documentation you will save future users some time.

Done, thank you and sorry for your time.

You are welcome and thank YOU for creating this great plugin :)


Conditional compilation doesn't work with new pallet::storage macro

With a conditional compilation attribute used on runtime storage type defined via #[pallet:storage], for example:
#[cfg(not(feature = "disable-tokens-by-owner"))]
#[pallet::storage]
#[pallet::getter(fn tokens_by_owner)]
pub type TokensByOwner<T: Config> =
	StorageDoubleMap<_, Twox64Concat, T::AccountId, Twox64Concat, (T::ClassId, T::TokenId), (), ValueQuery>;

Compiling with disable-tokens-by-owner feature would fail with error:

error[E0412]: cannot find type TokensByOwner in this scope
--> orml/nft/src/lib.rs:142:11
|
142 |     pub type TokensByOwner<T: Config> =
|              ^^^^^^^^^^^^^ not found in this scope
error: aborting due to previous error

The above example code could be found in orml_nft

Do you mean to not have not in the attribute?
Currently, that type will exist for anything that is NOT that feature.

but it didn't work with old decl_storage either, no ?
This is because the conditional compilation happens after the macro expansion, so if we want to support conditional compilation we have to parse them in some way or to have a wrapper macro which does it.
1- parse conditional compilation
Something I could see is that pallet::storage could parse for attribute like cfg and then copy this attribute for the prefix ident generated. Same for pallet::call, we could parse for such attribute on calls, and then copy this attribute on the call variant and call dispatch implementation. But all those stuff have to be manually implemented.
(I guess the best would be to have a newly introduce attribute for when the macro allows it, like #[pallet::cfg(...)])
2- use a wrapper macro
we can introduce some wrapper function. Maybe we can create a macro which does take some input with cfg attribute and result in each different possible output with only one cfg at the top:
#[do_cfg_up_front]
#[pallet]
mod pallet {
	#[cfg(feature = "abc")]
	#[pallet::storage]
	type Foo;

	#[cfg(not(feature = "abc"))]
	#[pallet::storage]
	type Bar;
}

#[cfg(feature = "abs")]
#[pallet]
mod pallet {
	#[pallet::storage]
	type Foo;
}

#[cfg(not(feature = "abc"))]
#[pallet]
mod pallet {
	#[pallet::storage]
	type Bar;
}

But this might be very tricky do to or it might even be impossible actually.

Do you mean to not have not in the attribute?
Currently, that type will exist for anything that is NOT that feature.

I mean while building with --features=disable-tokens-by-owner, that type should not exist, and everything would be fine. But instead there is a compiling error from the type definition.

but it didn't work with old decl_storage either, no ?

Actually It works with old decl_storage. (This is the code before pallet attribute macro migration.)
Syntax in solution 1 looks more straightforward and it's doable, IMHO the manual work worth it. :]

but it didn't work with old decl_storage either, no ?

Actually It works with old decl_storage. (This is the code before pallet attribute macro migration.)
Syntax in solution 1 looks more straightforward and it's doable, IMHO the manual work worth it. :]

If I read correctly, decl_storage is simply discarding the attribute and generate the storage anyway.
I agree manual work for such stuff seems the good direction


Fixed: set --es.num-shards to 1. By default jaeger st this value to 5…

…, this could create some issues since we have only one node of elasticseearch here
Signed-off-by: Alexandre Wilhelm<EMAIL_ADDRESS>

I think we should rather set the number of replicas greater than 1. We do the same for C*.

Not sure if it works out of the box for elastic search though. It needs some test first

@Dogild I have created https://github.com/jaegertracing/jaeger-kubernetes/pull/46 which deploys two instances. It seems that it works unless there is something not obvious.

It seems that #46 does not work properly. Data are not propagated to all nodes. We will revert to one replica in #50.
@Dogild could you  please provide some references why 5 shards can cause problem with one ES node?
cc @yurishkuro @black-adder @mh-park

@pavolloffay we experienced missing data and lost of connectivity between es and the the query node

@Dogild thanks for the PR. I will close it for now, based on my research it's valid to use more than 1 shard on a single node ES. It can lead to a better performance.
Please open an issue if you run into any problems with this configuration.

I think the issue is with replicas. Our template should use zero replicas.


envoy can't communicate with workoad when using Unix Domain Socket

Bug Description
I have a Http service on my VM(vm1), after finishing some initialization work to access the service mesh, everything works as expected, and I get a normal response when I call that Http service from another VM(vm2) after finishing the same initialization work.On vm2:
curl -v -H"Host: kevin.vs" <IP_ADDRESS>
* About to connect() to <IP_ADDRESS> port 80 (#0)
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Accept: */*
> Host: kevin.vs
>
< HTTP/1.1 200 OK
< date: Wed, 01 Sep 2021 07:44:39 GMT
< content-length: 6
< content-type: text/plain; charset=utf-8
< x-envoy-upstream-service-time: 1
< server: envoy
<
* Connection #0 to host <IP_ADDRESS> left intact
I'm VM1

However, the problem occurs when using Sidecar object to configure workload and envoy to communicate using UDS on vm1. When the same curl call is made on vm2, the following error occurs
curl -v -H"Host: kevin.vs" <IP_ADDRESS>
* About to connect() to <IP_ADDRESS> port 80 (#0)
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Accept: */*
> Host: kevin.vs
>
< HTTP/1.1 503 Service Unavailable
< content-length: 91
< content-type: text/plain
< date: Wed, 01 Sep 2021 07:54:57 GMT
< server: envoy
< x-envoy-upstream-service-time: 45
<
* Connection #0 to host <IP_ADDRESS> left intact
upstream connect error or disconnect/reset before headers. reset reason: connection failure

The error log(in /var/log/istio/istio.log) on vm1 is as follows (one call generates 3 identical error logs, this may be due to envoy's retry?)
[2021-09-01T07:54:58.020Z] "GET / HTTP/1.1" 503 UF upstream_reset_before_response_started{connection_failure} - "-" 0 91 0 - "-" "curl/7.29.0" "c0a2b9e2-fbff-4423-aeb2-b7f0b892a3d5" "kevin.vs" "/tmp/http.sock" inbound|30002|| - <IP_ADDRESS>:30002 <IP_ADDRESS>:43772 outbound_.80_.v1_.kevin.se default
[2021-09-01T07:54:58.039Z] "GET / HTTP/1.1" 503 UF upstream_reset_before_response_started{connection_failure} - "-" 0 91 0 - "-" "curl/7.29.0" "c0a2b9e2-fbff-4423-aeb2-b7f0b892a3d5" "kevin.vs" "/tmp/http.sock" inbound|30002|| - <IP_ADDRESS>:30002 <IP_ADDRESS>:43780 outbound_.80_.v1_.kevin.se default
[2021-09-01T07:54:58.066Z] "GET / HTTP/1.1" 503 UF upstream_reset_before_response_started{connection_failure} - "-" 0 91 0 - "-" "curl/7.29.0" "c0a2b9e2-fbff-4423-aeb2-b7f0b892a3d5" "kevin.vs" "/tmp/http.sock" inbound|30002|| - <IP_ADDRESS>:30002 <IP_ADDRESS>:43782 outbound_.80_.v1_.kevin.se default

Various objects including Sidecar are defined as follows.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: kevin-vm-vs
spec:
  hosts:
    - kevin.vs
  http:
    - route:
        - destination:
            host: kevin.se
            subset: v1
---

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: kevin-dr
spec:
  host: kevin.se
  subsets:
    - name: v1
      labels:
        version: v1
---

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: se
  namespace: kevin-vm
spec:
  hosts:
    - kevin.se
  location: MESH_INTERNAL
  ports:
    - name: http
      number: 80
      protocol: HTTP
      targetPort: 30002
#    - name: grpc
#      number: 80
#      protocol: GRPC
#      targetPort: 30001
  resolution: STATIC
  workloadSelector:
    labels:
      app: kevin-vm-app
      version: v1

---

apiVersion: networking.istio.io/v1alpha3
kind: Sidecar
metadata:
  name: kevin-si
  namespace: kevin-vm
spec:
  workloadSelector:
    labels:
      app: kevin-vm-app
      version: v1
  ingress:
    - port:
        number: 30002
        protocol: HTTP
        name: kevin-inh
      defaultEndpoint: unix:///tmp/http.sock
    - port:
        number: 30001
        protocol: GRPC
        name: kevin-in
      defaultEndpoint: unix:///tmp/rawgrpc-in.sock
---
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: kevin-pa
  namespace: kevin-vm
spec:
#  selector:
#    matchLabels:
#      version: v1
#  mtls:
#    mode: STRICT

I can confirm that the Http service on vm1 is already listening on UDS and responding to Http requests properly. Making local calls on vm1:
curl -v  --unix-socket /tmp/http.sock <IP_ADDRESS>
* About to connect() to <IP_ADDRESS> port 80 (#0)
*   Trying /tmp/http.sock...
* Failed to set TCP_KEEPIDLE on fd 3
* Failed to set TCP_KEEPINTVL on fd 3
* Connected to <IP_ADDRESS> (/tmp/http.sock) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: <IP_ADDRESS>
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed, 01 Sep 2021 08:17:42 GMT
< Content-Length: 7
< Content-Type: text/plain; charset=utf-8
<
* Connection #0 to host <IP_ADDRESS> left intact
I'm VM1

Version
# istioctl version
client version: 1.11.0
control plane version: 1.10.3
data plane version: 1.10.0 (4 proxies), 1.10.3 (13 proxies), 1.11.0 (2 proxies)

# kubectl version --short
Client Version: v1.22.0
Server Version: v1.20.4-aliyun.1
WARNING: version difference between client (1.22) and server (1.20) exceeds the supported minor version skew of +/-1

Additional Information
No response

when I remove targetPort entry in serviceEntry ,it works.


Temporary files can't be moved if on a different disk

What went wrong
❯ auto-editor "/mnt/d/Users/PC/Videos/2020-12-10 08-03-14.mkv" --edit_based_on audio_or_motion --frame_margin 90 --export_to_premiere --keep_tracks_seperate --debug

  Exporting to Adobe Premiere Pro XML file.
   - Temp Directory: /tmp/tmpmkb68y3o
   - Speeds: [99999, 1.0]
   - INPUT_FILE: /mnt/d/Users/PC/Videos/2020-12-10 08-03-14.mkv
   - newOutput: /mnt/d/Users/PC/Videos/2020-12-10 08-03-14.xml
   - sampleRate: 48000
   - audioBitrate: None
   - Frame Rate: 29.97
Analyzing audio volume.
Analyzing video motion.
   - Cutting totalFrames: 213254
audioList Length:  213040
motionList Length: 213254
Reducing the size of motionList to match audioList.
tracks: 6
/mnt/d/Users/PC/Videos/Cours
Traceback (most recent call last):
  File "/usr/local/bin/auto-editor", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/auto_editor/__main__.py", line 474, in main
    exportToPremiere(INPUT_FILE, TEMP, newOutput, clips, tracks, sampleRate,
  File "/usr/local/lib/python3.8/dist-packages/auto_editor/premiere.py", line 78, in exportToPremiere
    os.rename(os.path.join(temp, f'{i}.wav'), newtrack)
OSError: [Errno 18] Invalid cross-device link: '/tmp/tmpmkb68y3o/1.wav' -> '/mnt/d/Users/PC/Videos/2020-12-10 08-03-14_tracks/1.wav'

I assume this is due to os.rename not being able to handle the source and destination paths being on different disks.

Replacing os.rename with shutil.move solves the problem.

Fixed in 20w51a


el-scrollbar 的重新计算存在问题

Description
为el-scrollbar 设置动态高度，滚动条的位置不太正确

Reproduce Steps

[First Step]
[Second Step]
[and so on...]

Error Trace (if possible)
It's better to post up the error stack for us to trace this issue.
Solution
What needs to be done to address this issue? Ideally, provide a pull request with a fix.
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.


Move BDD around to Tests.Common

Resharper did the work :)
I would like to get this change in so we can publish a Test.Common nuget package that we can reuse in other projects, like Sidechains for instance

Looks good to me, just waiting on these tests passing + integration tests.


[V5] Refresh the refresh token

As mentionned in your doc, it is easy to refresh a V5 access token as it expires every month.
But what about refresh token itself ? I found no mention to refresh the refresh token.
As you have followed the rfc6749, i believed that you would also give a new refresh token as it is possible according the rfc. But when I test, I only got a new access token.
So what is the procedure to follow to obtain easily a new refresh token ?
Thanks

The API Developers site says, "Once the refresh token lifetime has expired you will need to explicitly request access again by starting the OAuth flow from the beginning."
At Pinterest, our highest value is "Put Pinners First." (That's what we call people who use Pinterest.) We did our best to set the expiration of the refresh token to a period of time that we thought would be reasonable to go back to a Pinner and ask them for permission for access. When requesting permission, it's possible to make the process conversational and positive. Something like, "Thanks for using our app! We notice that you haven't authorized access recently, so out of respect for your privacy we would like you to reauthorize us to access Pinterest on your behalf. It will just take a few seconds..."


Issue with different font types and same name

Hi,
I've spent some time to solve this issue, so I guess it could be helpful for somebody.
When having two font faces for regular and bold like this:
@font-face {
    font-family: CVFont;
    src: url("fonts/Microsoft YaHei.ttf");
}

@font-face {
    font-family: CVFont;
    src: url("Microsoft YaHei Bold.ttf");
    font-weight: bold;
}

In case if fonts have the same name in the meta the behavior is bit unexpected - the seconds font-face will be the same as first one.
The key is in the info:

I've had to change the name in the font's meta manually to resolve this issue, but I think the fix should be pretty straightforward.

PR #506 Solve this


feat(Drawer): add body scroll lock

TOP-2735
Description
Decoupled body scroll management logic from ModalManager class to make it independent from modals and reusable. Added a prop to Drawer that allows to opt-in for body scroll lock enabled mode.
How to test

Ensure modals lock body scrolling just like they would do it previously
Ensure drawers lock body scrolling when rendered with maintainBodyScrollLock=true

Development checks

[x] Add changeset according to guidelines (if needed)
[x] Read CONTRIBUTING.md and Component API principles
[x] Make sure that additions and changes on design follow Toptal's BASE design, and it's been already discussed with designers at #-base-core
[x] Annotate all props in component with documentation
[x] Create examples for component
[x] Ensure that deployed demo has expected results and good examples
[x] Ensure the changed/created components have not caused accessibility issues. How to use accessibility plugin in storybook.
[x] Self reviewed
[x] Covered with tests

Breaking change

~codemod is created and showcased in the changeset~
~test alpha package of Picasso in StaffPortal~

All development checks should be done and set checked to pass the
GitHub Bot: TODOLess action

PR commands

List of available commands:

@toptal-bot run package:alpha-release - Release alpha version
@toptal-anvil ping reviewers - Ping FX team for review

PR Review Guidelines

When to approve? ✅
You are OK with merging this PR and

You have no extra requests.
You have optional requests.

Add nit: to your comment. (ex. nit: I'd rename this variable from makeCircle to getCircle)

When to request changes? ❌
You are not OK with merging this PR because

Something is broken after the changes.
Acceptance criteria is not reached.
Code is dirty.

When to comment (neither ✅ nor ❌)
You want your comments to be addressed before merging this PR in cases like:

There are leftovers like unnecessary logs, comments, etc.
You have an opinionated comment regarding the code that requires a discussion.
You have questions.

How to handle the comments?

An owner of a comment is the only one who can resolve it.
An owner of a comment must resolve it when it's addressed.
A PR owner must reply with ✅ when a comment is addressed.

Is this something with my PR or some integration tests are unstable? Seeing some tests randomly failing, seems unrelated to the changes I made...

@ascrazy sadly the tree component is from time to time flaky :(


How to "generate" "NAV App xxx" table content

I have recently tried to deploy an extension to a (NAV2018 CU4) database created from scratch using the "New Database" option of finsql.exe. Then I imported the base application via import and created a company. But now I find myself with the [NAV App xxx] tables all empty and therefore deploying an extension to this database does not work. The error I get is that the symbols for "Microsoft.System" and "Application" cannot be found.
I have then tried to generate symbol references by running finsql.exe with command=generatesymbolreference and it exited without error, stating that the command completed sucessfully after 227 seconds. But the records in theese tables did not appear. I don't even know if they are supposed to?
Anyway: how am I supposed to generate those records when NOT starting from a CRONUS database?

Hi @hemisphera,
In general, the [Nav App] tables are populated when you publish the extensions using Publish-NavApp cmdlet (or when you publish from VSCode).
The System and Test symbol package can be found in program files as described here.
Now, the Application symbols you have generated yourself using finsql.exe command=generatesymbolreference. In this case, the Application symbols are not persisted in the [Nav App] table, but they are available at runtime on the server (physically individual symbols are stored in [Object Metadata].[Symbol Reference] column).
So if you enable the setting EnableSymbolLoadingAtServerStartup as described here, you should be able to publish extensions.

Please have a look at the upgrade checklist, Task 18:
https://docs.microsoft.com/en-us/dynamics-nav/upgrading-the-data


contrast limits range equal to contras limits on setting

🐛 Bug
If you explicitly set the contrast limits as a keyword argument to the layers list right now the range of the contrast limits slider gets set to the same value, which is quite annoying if you then need to adjust the sliders to be more extreme. I suggest that we set the range to be 10% smaller and 10% larger to give you a little extra room to adjust things.
This change will only affect the display and will be backwards compatible.

@sofroniewn imho we should be quite a bit smarter about contrast limits. For one, I think for uint8 images the limits should always be set to 0-255 and the image should not be introspected in any way. In this case, adding 10% margins would be totally nonsensical.
Another idea would be something like bit_depth which could be set to e.g. 12 to then automatically adjust the sliders to 0-4095 without needing to type those numbers in.

Also, I would not call this a bug at all, but a feature request. =)

just found this issue and wanted to chime in:
the current space in the clims slider is pretty finicky for my data because (like a lot of fluorescence imaging) a ton of our information is down in the low intensity values. With the current 2-dots-and-bar slider, I don't have the flexibility to interactively adjust the low end without the 2 dots overlapping and becoming useless.
I don't have a great solution here without going to the full zoomable histogram+slider widget similar to what's in pyqtgraph or micromanager

In Quicktime, you can hard-press (or long press) when scrubbing on the movie position to "expand" the slider and have movement of the slider translate to finer movement of the time. We should definitely steal this idea.

The larger pop-up slider feature and editable range labels has now been added in #837 so closing this issue


process.getuid is not a function with @payloadcms/plugin-cloud-storage

Link to reproduction
No response
Describe the Bug
When updating @payloadcms/plugin-cloud-storage from 1.0.19 to 1.1.2, I start getting the following error in the console:
Uncaught TypeError: process.getuid is not a function
    at getuid (polyfill.js:69:17)
    at homedir (polyfill.js:37:1)
    at getPrefix (index.js:22:1)
    at Object.get [as exports] (index.js:94:1)
    at __webpack_require__ (bootstrap:34:1)
    at fn (hot module replacement:62:1)
    at ./node_modules/global-modules/index.js (index.js:11:14)
    at __webpack_require__ (bootstrap:24:1)
    at fn (hot module replacement:62:1)
    at ./node_modules/resolve-dir/index.js (index.js:12:10)

From what I've seen, that error happens in the homedir-polyfill package. It's essentially because Node.js code ends up in the front-end bundle, where process is obviously not available. Similar to #4215.
To Reproduce

Get a regular Payload setup
Add 1.1.2 of the plugin
Run in development mode

Payload Version
2.9.0
Adapters and Plugins
plugin-cloud-storage

I don't understand why Payload has to have common plugin files for front-end and back-end (single payload.config.ts), resulting in messes like this. If both parts are separated and imported separately, a lot of this confusion could be avoided, in my opinion.
Sure, it might be annoying to have payload-server.config.ts and payload-client.config.ts, but I would much rather choose to manage two config files, than cross fingers every time I upgrade packages and have to debug and report issues. I ran into #4215 a while ago too.

Hey @hdodov , I understand your frustration. 3.0 will address all of the webpack woes directly.
I attempted to recreate this but was unable to run into any issues.
What package manager are you using? I attempted this with npm, yarn, and pnpm.
My steps:

npx create-payload-app@latest -t website --db mongodb recreate-4952
yarn add @payloadcms/plugin-cloud-storage@latest
Add peer deps for S3 yarn add @aws-sdk/client-s3 @aws-sdk/lib-storage aws-crt
Configure plugin:

cloudStorage({
  collections: {
    media: {
      adapter: s3Adapter({
        config: {
          endpoint: process.env.S3_ENDPOINT,
          forcePathStyle: process.env.S3_FORCE_PATH_STYLE === 'true',
          region: process.env.S3_REGION,
          credentials: {
            accessKeyId: process.env.S3_ACCESS_KEY_ID,
            secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
          },
        },
        bucket: process.env.S3_BUCKET,
      }),
    },
  },
}),

yarn dev
Perform upload

Anything that I'm missing? A few other people have upvoted this issue, so I assume I'm missing something.

Can confirm I'm also running into this issue.

I am experiencing the same issue. Any solution yet?

@denolfe I've made a reproduction repo. Let me know if you can reproduce the issue now on your side. Look at the repo's README for instructions.

I decided to upgrade our dependencies today and the issue still persists:
<i> [webpack-dev-middleware] wait until bundle finished: /__webpack_hmr
<i> [webpack-dev-middleware] wait until bundle finished: /__webpack_hmr
<i> [webpack-dev-middleware] wait until bundle finished: /__webpack_hmr
webpack built 28c201726d1e6c071118 in 17355ms
ERROR in ./node_modules/fill-range/index.js 10:13-28
Module not found: Error: Can't resolve 'util' in '/app/node_modules/fill-range'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
        - install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "util": false }

ERROR in ./node_modules/homedir-polyfill/index.js 3:9-22
Module not found: Error: Can't resolve 'os' in '/app/node_modules/homedir-polyfill'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
        - install 'os-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "os": false }

ERROR in ./node_modules/micromatch/index.js 3:13-28
Module not found: Error: Can't resolve 'util' in '/app/node_modules/micromatch'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
        - install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "util": false }

webpack compiled with 3 errors

Here are the versions of all Payload packages:
"@payloadcms/bundler-webpack": "^1.0.6",
"@payloadcms/db-mongodb": "^1.4.3",
"@payloadcms/plugin-cloud-storage": "^1.0.19",
"@payloadcms/richtext-slate": "^1.4.0",
"payload": "^2.11.2",

I had to downgrade @payloadcms/plugin-cloud-storage from 1.1.2 to 1.0.19 again, as a workaround.

@hdodov Thank you for the reproduction. I was able to recreate.
However, it is quite confusing to me why setting the fallback of util: false (as you did in your example) wouldn't handle this particular error.
I will have to tinker with this more to come to a solution.

@denolfe I decided to try to update the plugins again and set util: false and os: false due to the following errors:
ERROR in ./node_modules/fill-range/index.js 10:13-28
Module not found: Error: Can't resolve 'util' in '/app/node_modules/fill-range'

ERROR in ./node_modules/homedir-polyfill/index.js 3:9-22
Module not found: Error: Can't resolve 'os' in '/app/node_modules/homedir-polyfill'

ERROR in ./node_modules/micromatch/index.js 3:13-28
Module not found: Error: Can't resolve 'util' in '/app/node_modules/micromatch'

However, if I do this, I start getting the "process.getuid is not a function" error from the beginning of the issue, i.e. this:

There's no workaround at the moment, basically, and you're stuck to version 1.0.19 of the cloud storage plugin. You either get errors at compile time (because the module is being added and it shouldn't) or you get them in the frontend (because the module is not being added and it should).
I think the "solution" here is to wait for a stable Payload 3.0, but I'm just putting this out there for others who decide to give this a shot.

This package.json
"@payloadcms/bundler-webpack": "^1.0.6",
"@payloadcms/db-mongodb": "^1.4.3",
"@payloadcms/plugin-cloud-storage": "^1.0.19",
"@payloadcms/richtext-slate": "^1.4.0",
"payload": "^2.11.2",

With this payload.config.ts
webpack: (config) => {
            return {
                ...config,
                resolve: {
                    ...config.resolve,
                    alias: {
                        ...config.resolve.alias,
                    },
                    fallback: {
                        ...config.resolve.fallback,
                        fs: false,
                        stream: false,
                        constants: false,
                        assert: false,
                        util: false,
                    },
                },
            };
        },

Seems to be working for me for now. Thanks for this thread.
However, what would be the official way of doing it?

@jenniredfield it works because you're using the old version 1.0.19 with which it's expected to work. Does it continue to work if you upgrade to 1.1.2?

I had the plugin-cloud-storage 1.1.3 installed for quite some time (since a month) and never ran into the issue (while also never upgrading anything since a month).
But today I suddenly have the issue, but only in my builds (build -> server -> ui crashes with bug) never in dev.
Even if I checkout previous versions of my repo, from when I never had the issue, it suddenly always builds with this strange bug.
I made sure to always delete my node_modules directory after checking out different versions but the bug persists and I simply can't explain it to myself why my setup hadn't shown the bug until now and suddenly does.
Then again, downgrading the plugin to 1.0.19 works as advertised.
And it really is a shame that my main.js is currently at 6MB ... looking forward to that stable 3.0 without all those nodejs packages in the frontend :+1:


train.py

Thank you for your dedication. When will the code be released!

Test Code has been released!


[Question] how to change wizard style

how i can change wizard style from tabs to dots like this sample here : https://formio.github.io/formio-wizard/

Were you able to fix it? If so can you please guide?

Closing this thread as it is outdated. Please re-open if it is still relevant. Thank you for your contribution!


Update Copy-DbaLinkedServer.ps1

Type of Change

[x] Bug fix (non-breaking change, fixes #4087)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose
Handle case where Data Source is not equal to Name of Linked Server.
Approach
SMO does not generate a good/complete script: $sql = $currentLinkedServer.Script() | Out-String.
I added some code to fix it afterwards with sp_setnetname.
Commands to test
See issue #4087.

Ohh! I wondered how to fix this! So glad this has been addressed, ty 🙇

Is this due to an error in Get-DecryptedObject? I have two errors complaining about case sensitivity in that function. "Invalid column name Name" and "Invalid object name sys.Credentials". When failing that also leaves a DAC open.

oh wow, can you give me the proper case? i can fix that, too.

I get this errors when using Copy-DbaCredential and Copy-DbaLinkedServer:
[Get-DecryptedObject] Can't establish local DAC connection on MyServer\MyInstance. | Invalid column name 'Name'.
[Get-DecryptedObject] Can't establish local DAC connection on MyServer\MyInstance. | Invalid object name 'sys.Credentials'.
It also leaves a DAC open so next run I got this error.
[Get-DecryptedObject] Can't establish local DAC connection on MyServer\MyInstance. | An established connection was aborted by the software in your host machine
This occurs when running on an instance with a case sensitive collation.

Sorry I meant can you give me the proper cased T-SQL statement and I can do a replace? I'll also repeat the close object in the catch.

Sorry, missunderstood. It is this code that cause the problem.
$sql = switch ($Type) {
    "LinkedServer" {
        "SELECT sysservers.srvname,
                syslnklgns.Name,
                substring(syslnklgns.pwdhash,5,$ivlen) iv,
                substring(syslnklgns.pwdhash,$($ivlen + 5),
                len(syslnklgns.pwdhash)-$($ivlen + 4)) pass
            FROM master.sys.syslnklgns
                inner join master.sys.sysservers
                on syslnklgns.srvid=sysservers.srvid
            WHERE len(pwdhash) > 0"
    }
    "Credential" {
        "SELECT QUOTENAME(name) AS name,credential_identity,substring(imageval,5,$ivlen) iv, substring(imageval,$($ivlen + 5),len(imageval)-$($ivlen + 4)) pass from sys.Credentials cred inner join sys.sysobjvalues obj on cred.credential_id = obj.objid where valclass=28 and valnum=2"
    }
}

Change syslnklgns.Name to syslnklgns.name and
from sys.Credentials to from sys.credentials


[autodiscovery] Delete misplaced comment

What does this PR do?
Small cleanup. Removes a misplaced comment in the autodiscovery package.
The comment was pasted from the tagger component by mistake.
Describe how to test/QA your changes
Skip.

/merge


Support ellipsis in Array::At and __getitem__

Resolve #7560.
~Depends on #7559.~
~Depends on #7614.~

Just a question.
It is possible to add some explicit tests on chainerx side?
Or with just the chainer test suite should be enough

@emcastillo I added python tests for chainerx now. Usually, we don't add chainerx test in C++ to avoid duplications.

There are some errors related to indexing on travis.
Might be an issue with the configuration on the CI after upgrading pybind?

This line expects IndexError at the end of the loop, but chainerx.ndarray currently raises DimensionError. How should we fix it?
https://github.com/asi1024/chainer/blob/fb42f0a25106def7d74515eceddd0988f348aa2c/chainer/functions/loss/negative_sampling.py#L299

#7614 has now been merged.

Jenkins, test this please

Jenkins CI test (for commit 1b1bb5a6eacd6dfab8fc6897bf89960d63c100a1, target branch master) failed with status FAILURE.

Fails due to the flake8 issue a for which a PR is pending.

Jenkins, test this please

Jenkins CI test (for commit 1b1bb5a6eacd6dfab8fc6897bf89960d63c100a1, target branch master) failed with status FAILURE.

Unrelated error due to TestDeconvolutionND


Nuxt v-show is not handled properly, if static page is visited after netlify redirect (404)

Version
v1.4.0
Reproduction link
https://5b0e402811b73b3c565110ea--cafe-pluesch.netlify.com/
Steps to reproduce
Hi there
I have no idea what kind of bug this could be but I have the following situation:
I have set a netlify _redirects file with the following content:
/* /error/index.html 404
Which means all 404 should be redirected to my error page. This page's content can be edited via CMS.
Anyway, if I visit the error page actively:
https://5b0e402811b73b3c565110ea--cafe-pluesch.netlify.com/error
The link in the upper right corner (Kontakt/Öffnungszeiten) will actually
trigger an action -> a vuex state mutation -> and the Component «Halfpage» which is already in the DOM, because of v-show instead of v-if is slided in from the right.
This is the expected behaviour!
If I visit a slug that does not exist, netlify will  redirect me (my404 does not exist):
https://5b0e402811b73b3c565110ea--cafe-pluesch.netlify.com/my404
So I effectively land on the same page as before. But this time the button Kontakt/Öffnungszeiten does not work anymore – well at least not everything works.
You can check the console.log.
There you can see all the logs:

I log the initial click
I log the triggering of the action
I log the following state mutation
and I log the actual state, which clearly changes from false to true

As seen on the /error page, this should all work and set this to visible:
<template>

  <transition name="u-anim-slide-in">

    <div class="Halfpage" v-show="halfPageOpen">
    ...
    </div>
  </transition>
</template>

(halfPageOpen ist a getter, which I set in the computed property:
...mapGetters('ui', ['halfPageOpen']),

So my suspicion is, that because it is a netlify redirect something in the Vue App is handled differently, and it may have to do with nuxt's static pages?
I hope someone can point me to the right direction. I have no clue where to start, and I don't even know if this is a nuxt bug?
I would appreciate if somebody could look into this, and I'm happy to provide more information about this, if needed.
Cheers
What is expected ?
A vuex state change should make a v-show element visible.
What is actually happening?
This normally works well. It just would not work if a page is visited via Netlify's redirect.

This bug report is available on Nuxt.js community (#c7175)

Looks like it's fixed on the live version.
@Jones-S  Would you tell us how you did it? :relaxed:

I am not sure anymore 😅
I think I moved the Halfpage component to the layout and out of a page template.
That is at least where I have it now.
I think that's what fixed the issue – or rather just avoids it...


[Bug] Encrypted Binary fields resulting in Binary type with default subtype instead of user defined subtype.

Hi ,
I have noticed with one of my projects that storing the data in bson Binary (using encrypted fields,binary subtype = 6) results in data getting stored as Binary with default subtype(subtype=0).
I checked and found that,  it is due to the Encoder Class treating the Binary type as instance of bytes, and converting it into Binary and as the default subtype is 0, it is taking subtype as 0.
Edit: Added PR https://github.com/roman-right/beanie/pull/167

Hi,
Oh wow. This guy is critical.
Thank you. I'll take a look this evening


Vertex properties

Coverage increased (+45.5%) to 45.47% when pulling e2185fc653535f21daf3290c637c0929931e1032 on vertex-properties into b30a59c887d78706d689baa19996b78e41b096ab on master.


How to use the pretrained model?

Awesome Project! But i can not figure out how to the pretrained model. Should we put the pretrained model into the directory experiment/checkpoint/? Does it need rename?

The pretrained model is for inference only, containing only the generator weights. To use it, you can place it wherever u like just point the model_dir argument to the directory that contains the 'checkpoint' file.

Thank you very much!
I am also confused with the parameter --source_obj in infer.py, should it be pointed to the val.obj we generate early or some other test.obj?(I was taught that datasets used in machine learning often be splited into three parts namely train/val/test? But i have not found the procedure to generate test data here?

The sourcee_obj could be whatever you want, on the assumption that it is generated by the package.py script just to comply with the the format.

Thank you for your reply.


Palindrome Product Exercise (es6)

Todos

[x] Build a sane test workflow.
[x] Clean up exercise.

Hi,
Sorry if this is not the right place, but I'm not sure where to ask.
How could I run my production code against the tests provided by exercism?
I've tried to run them with the command under the ecmascript/palindrome-products folder:
jasmine-node .

But I get this error:
C:\Users\rchavarria\exercism\ecmascript\palindrome-products\palindrome-products.js:7
function generate({ minFactor = 1, maxFactor = Number.MAX_VALUE }) {
                  ^
Exception loading: C:\Users\rchavarria\exercism\ecmascript\palindrome-products\palindrome-products_test.spec.js
[SyntaxError: Unexpected token {]

It seems the ECMAScript 6 code is not transpiled to ECMAScript 5 before running the tests, but I don't know how to tell traceour to do it.
Thanks in advance.

@rchavarria You'll probably get more help asking in the support channel: https://gitter.im/exercism/support -- if not, you might also be able to get some help on StackOverflow (not the exercism-specific part, but there are a lot of knowledgable people who, if you tell them what the filenames and paths and bits of code are, could probably give you an answer quickly.

Ok, thanks. I'll try first the support channel.


feature request: SetType() on AudioSampleEntryBox

Good day!
Right now there is no way too set AudioSampleEntryBox.name on already created box. This is must have feature to implement CENC compliant encryptor on mp4ff. As simplest solution we can have a SetType() method as it's already implemented for VisualSampleEntryBox.

I will try to make the PR tomorrow.