Use for CI/CD? Recipe and use-case idea for documenting.

I wonder if anyone has tried hooking this stuff up to their CI/CD system. Leasing a pre-nuked account sounds really great for start-up speed and disposing the environment immediately afterwards keeps tests running in clean environments.

@nelsonjchen this project actually uses DCE in it's own CI/CD system, to deploy a to a test environment. Take a look at the Azure Pipelines config in pipeline.yml. Every PR will:

Lease a new AWS account from a pre-configured pool of test accounts (managed by a dedicated DCE test instance)
Generate credentials against the leased account using dce leases login
Deploy a new instance of DCE to that test account, using the PR code (terraform + go packages). It's a single account, with master and child merged.
Run functional tests against the PR-version of DCE
Tear down the PR-version of DCE
Unlease the account, to go back into the testing pool.

I think it's a pretty neat use-case, if you can get it working. I'm no longer active on this project, but it was a great setup at the time.

@nelsonjchen this project actually uses DCE in it's own CI/CD system, to deploy a to a test environment. Take a look at the Azure Pipelines config in pipeline.yml. Every PR will:

Lease a new AWS account from a pre-configured pool of test accounts (managed by a dedicated DCE test instance)
Generate credentials against the leased account using dce leases login
Deploy a new instance of DCE to that test account, using the PR code (terraform + go packages). It's a single account, with master and child merged.
Run functional tests against the PR-version of DCE
Tear down the PR-version of DCE
Unlease the account, to go back into the testing pool.

I think it's a pretty neat use-case, if you can get it working. I'm no longer active on this project, but it was a great setup at the time.

I think it's a pretty neat use-case, if you can get it working. I'm no longer active on this project, but it was a great setup at the time.

Hmm, is there a better setup nowadays?

I think it's a pretty neat use-case, if you can get it working. I'm no longer active on this project, but it was a great setup at the time.

Hmm, is there a better setup nowadays?

There's always room for improvement! Give it a go, I'd be interested to hear how it works out.

There's always room for improvement! Give it a go, I'd be interested to hear how it works out.

I was debating whether or not to throw in a yo-dawg joke when I made this issue. Good to know we're on the same page!

I was debating whether or not to throw in a yo-dawg joke when I made this issue. Good to know we're on the same page!

Hi @nelsonjchen,
You mentioned an ideal implementation scenario for DCE. We use DCE that is CI/CD enabled. Our CI leases one of the Pool's aws account and deploys the DCE artifacts to that account. It then runs applicable unit tests and functional tests, and upon successful execution, it finally destroys the artifacts and the lease. You may also want to look at the azure DevOps pipeline for reference. I hope this insight helps. Let us know if you come up with any enhancement ideas, and we would love to add them to our product backlog.

Hi @nelsonjchen,
You mentioned an ideal implementation scenario for DCE. We use DCE that is CI/CD enabled. Our CI leases one of the Pool's aws account and deploys the DCE artifacts to that account. It then runs applicable unit tests and functional tests, and upon successful execution, it finally destroys the artifacts and the lease. You may also want to look at the azure DevOps pipeline for reference. I hope this insight helps. Let us know if you come up with any enhancement ideas, and we would love to add them to our product backlog.

Probably nothing specifically about enhancement to DCE but this recipe thing at the moment.
I might be interested in producing in a proof of concept pipeline using GitHub Actions though and writing up about it. Azure Pipelines is great and was very useful when GitHub Actions wasn't available or mature but a GitHub Action-based setup is the lowest friction IMO since it is integrated and an "external" service doesn't need to be setup.

Probably nothing specifically about enhancement to DCE but this recipe thing at the moment.
I might be interested in producing in a proof of concept pipeline using GitHub Actions though and writing up about it. Azure Pipelines is great and was very useful when GitHub Actions wasn't available or mature but a GitHub Action-based setup is the lowest friction IMO since it is integrated and an "external" service doesn't need to be setup.

Your choice of GitHub actions makes sense to me! We have been comparing these two recently and are pretty excited about the gh actions potential, especially around managing compliance and security for CI/CD and automated workflows. When you can, We'd love to hear about your experience with DCE and GitHub Actions.
Thanks!

Your choice of GitHub actions makes sense to me! We have been comparing these two recently and are pretty excited about the gh actions potential, especially around managing compliance and security for CI/CD and automated workflows. When you can, We'd love to hear about your experience with DCE and GitHub Actions.
Thanks!

I'm a more interested in making this or the recipe usable for a GitHub OSS project with the security issues that come by as well as some sort of limiter or maybe even a spinlock fallback on DCE account leasing acquisition for capacity reasons.
For security, I'm interested in and desire something that allows the maintainers of a project to mark and approve a PR to run with DCE secrets. I'm looking into using something like Bors-NG or something that'll allow a marked and trusted PR to run with secrets. Unfortunately, Bors-NG imposes a workflow. It maybe "common sense" to them but it might not be right for everyone.
For capacity, GitHub can provide many more "runners" than the default account AWS Organization account limit of 4. There's currently no way to limit the parallelism of free runners purely on GitHub. I don't think there's a way to block GitHub actions from running so maybe a spinlock on getting leases is needed. Or maybe this can be helped by that Bors bot or something similar.
Anyway, those are just some thoughts for now.

I'm a more interested in making this or the recipe usable for a GitHub OSS project with the security issues that come by as well as some sort of limiter or maybe even a spinlock fallback on DCE account leasing acquisition for capacity reasons.
For security, I'm interested in and desire something that allows the maintainers of a project to mark and approve a PR to run with DCE secrets. I'm looking into using something like Bors-NG or something that'll allow a marked and trusted PR to run with secrets. Unfortunately, Bors-NG imposes a workflow. It maybe "common sense" to them but it might not be right for everyone.
For capacity, GitHub can provide many more "runners" than the default account AWS Organization account limit of 4. There's currently no way to limit the parallelism of free runners purely on GitHub. I don't think there's a way to block GitHub actions from running so maybe a spinlock on getting leases is needed. Or maybe this can be helped by that Bors bot or something similar.
Anyway, those are just some thoughts for now.

Could I interest optum in taking over the github action I wrote on behalf of my employer observeinc?
It's a little rough around the edges but for for the purposes of a 1.0 it gets the job done


Regression likely contains a bug

There seems to be something wrong with the regression-case since the performance decreases when the number of max_rules increases. This should be the other way around. It could be that this is related to the weight calculation because the weight calculation has not much effect on the classification performance.
Maybe the weights should take into account the rule frequencies? Currently, this is sort of used in the weight calculation via a rule space where each rule is a binary feature indicating whether the datapoint satisfies the rule. However, if I understand correctly, this is a shortcut compared to using the rules and rule frequencies as established during the tree fitting procedure.

Seems like an important issue to fix for publication?
https://github.com/openjournals/joss-reviews/issues/5786

Seems like an important issue to fix for publication?

@gdalle yes it would be very nice if this could be fixed. You are very much right on this. I now ran the comparison against the original implementation in #58 and it looks like the original algorithm performs similar on the classification and boston (regression) datasets, so that is fine. Alas, the original algorithm performs much better on the make_regression dataset.
I have already spent a few weeks on trying to improve the regression implementation, see the long list of PRs linking to https://github.com/rikhuijzer/SIRUS.jl/issues/13 and especially https://github.com/rikhuijzer/SIRUS.jl/pull/22 for details. Unfortunately, I don't have time to fix this in the coming months since I'm busy finishing my PhD. I find bug hunting in algorithms enjoyable but especially time consuming.
Regardless, I still think that the paper adds value to the scientific field even without having "fixed" this issue. The Julia implementation is much easier to understand, which hopefully allows other people to help in finding the bug or to build even better algorithms on top of it. Also the Julia version has implemented multi-class classification whereas the R version appears to have not.

I understand and I agree with your stance. Not closing this but will indicate on the review that it is non blocking, as long as the performance gap is listed in the paper among future perspectives.
Nice work on the RCall wrap!

I understand and I agree with your stance. Not closing this but will indicate on the review that it is non blocking, as long as the performance gap is listed in the paper among future perspectives.

Thank you, Guillaume, for seeing it as non blocking as long as we list the performance gap (which I believe we did, but correct me if I'm wrong).

Nice work on the RCall wrap!

Haha yes very nice of you to notice that! I expected that it would be a big mess but it turned out to be surprisingly easy. Credits to the RCall.jl people!

A quick note to self before I forget. I think I got it (https://github.com/rikhuijzer/SIRUS.jl/pull/71). There are two problems:

The base forest model is not as accurate as it could be. The StableForestRegressor performs poorer than the DecisionTreeRegressor on the boston and make_regression datasets. In turn, this will also lead to lower StableRulesRegressor.
Just like linear models, rule-based model is very sensitive to the choice of lambda hyperparameter (because under the hood lambda goes into a linear model to choose the weights). With a poor lambda, strange things can happen such as performance decreasing when increasing the number of rules. This effect can (sometimes?) be fixed by choosing a more suitable lambda.


log 304 for staticCache

problem
when the conditional get of staticCache middleware succeed,
it logs 200 instead.
solution
I added one line:
res.statusCode = 304
still confused
Do you know any difference between
res.writeHead(304, header)  and
res.statusCode = 304
----- appreciate your feedback

hmm we must be ignoring  writeHead in logger now. that's the problem with node's internals.. it's very messy if you want to try and take every possible response into account


Add automated deps update with grayskull

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

I do not know if this works if the source tarball is not from pypi.

What about using inspection: update-source or inspection: update-all?

Alright, I'll leave it like this and eventually we can disable it in the future

Alright, I'll leave it like this and eventually we can disable it in the future, if you agree

Ok for me.


Environment with elastic search template is not seen on the Subutai side

I have created 4 environments using 4 different templates and only 3 of them are seen on the Subutai side:

but when I go to Hub all the 4 environments are seen:

@akylbekesenaliev no containers in your environment on screenshot.

ok, so in this case environment won't be seen from the Hub side?

this question is for @asanaliev

@akylbekesenaliev can you explain how you created that elasticsearch environment without containers?
For example, Hub doesn't allow creating env without containers. So may be, you created env with containers first, then deleted those containers?
Please also try to reproduce this case. I couldn't reproduce myself. May be it was some intermittent bug that has been fixed with recent changes. Let's check.

@asanaliev I have followed the steps in the scenario for the elastic search and did nothing else...
Right now I cant reproduce it having this error:

also just now Subutai stopped working, going to restart it ...

@asanaliev

I have successfully created an environment with the elastic search template and it also can be seen from the Hub side:

and I am suppose to have 3 containers and I do, and it can be seen here:

But the Hub shows me only 1 container:

@akylbekesenaliev can you reproduce this with last SS?

@Dilshat yes I will try

@Dilshat I have tested this with the lates SS :

The environment is succesfully created and cluster too :
But the Hub shows me that I only have one container which is not true I have 3 of them :

Here:

I could not reproduce this issue:

Created env on Hub with three ES containers. Can see containers on SS.
Vice versa: created same kind of env on SS and can see on Hub.

@akylbekesenaliev Pls ping next when you have this issues. I will debug your environment.

@asanaliev I no more have this issue,I think it was gone with the last update maybe, but as you can see from the comments above a new issue was found and thats why I keep this issue Open.


Fix idx calls in async methods

Adding the temp var to the scope of an async method, messes up the this reference when using babel-plugin-transform-async-to-generator. I don't have better solution than to special handle the scoping in cases where the immediate scope is an async method. Setting _blockHoist: 3 all of the time doesn't seem to affect the tests, but because this option is poorly documented, I'm not sure on what other consequences that may have. So I'd rather play it safe.
Without this fix, the test would actually transform to:
class Foo {
  bar() {
    return _asyncToGenerator(function* () {
      var _ref,
          _this = this;

      (_ref = base) != null ? _ref.b : _ref;
      return _this;
    })();
  }
}

@wbinnssmith hit this issue in Nuclide a while ago, and I just remembered about this.

@yungsters this is the last PR, after this we can publish v2 - lmk if you want me to do it

Hmm... this seems like a bug in babel-plugin-transform-async-to-generator to me. Am I wrong?
In any case, this is a pretty laser-focused workaround that I am comfortable with.

Hmm... this seems like a bug in babel-plugin-transform-async-to-generator to me. Am I wrong?

Yes-ish, but to fix it in babel would be a giant pain... It's easier for us to workaround it knowing that we messed with the scope.


Add pfx_properties property to windows_certificate resource

Add pfx_properties property to windows_certificate resource to allow specifying of PFX key properties used when installing PFX certificates in Windows.
win32-certstore gem >=v0.4.0 allows these properties to be passed.
Gem updates to add_pfx function can be seen here: https://github.com/chef/win32-certstore/commit/fd9342e3e1d87011c29f8be1461642f85316043b
Signed-off-by: Alex Munoz<EMAIL_ADDRESS>Description
This allows chef-client to install the certificate PFX key in the localsystem store even when being run as a user as well as any number of PFX key flags available to the PFXImportCertStore function.
See https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-pfximportcertstore
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Chore (non-breaking change that does not add functionality or fix an issue)

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] All commits have been signed-off for the Developer Certificate of Origin.

@amunoz951 I'm going to close this one out at this point since we haven't heard back. If you'd like to move forward with this change feel free to pop into the #chef-infra-dev channel on the Community Chef Slack and we can chat about where to take this.


Fixing eslint problems and updating snapshot tests

Codecov Report

Merging #40 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master     #40      +/-   ##
=========================================
- Coverage   99.11%   99.1%   -0.01%
=========================================
  Files          15      15
  Lines         225     224       -1
  Branches       29      29
=========================================
- Hits          223     222       -1
  Misses          1       1
  Partials        1       1

Impacted Files
Coverage Δ

src/components/task/task-editor.tsx
96.66% <ø> (-0.11%)
:arrow_down:

src/components/user/user-list.tsx
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 f289053...7b78e79. Read the comment docs.


Error with travis-ci

I get an error while trying to install this extension with travis-ci and I do not understand where it comes from. I wonder if you could help.
Log from travis of the installation of lightgallery-markdown:
running install
running bdist_egg
running egg_info
creating lightgallery.egg-info
writing requirements to lightgallery.egg-info/requires.txt
writing lightgallery.egg-info/PKG-INFO
writing top-level names to lightgallery.egg-info/top_level.txt
writing dependency_links to lightgallery.egg-info/dependency_links.txt
writing manifest file 'lightgallery.egg-info/SOURCES.txt'
reading manifest file 'lightgallery.egg-info/SOURCES.txt'
writing manifest file 'lightgallery.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
copying lightgallery.py -> build/lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
copying build/lib/lightgallery.py -> build/bdist.linux-x86_64/egg
byte-compiling build/bdist.linux-x86_64/egg/lightgallery.py to lightgallery.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying lightgallery.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying lightgallery.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying lightgallery.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying lightgallery.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying lightgallery.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/lightgallery-0.1.0-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing lightgallery-0.1.0-py2.7.egg
Copying lightgallery-0.1.0-py2.7.egg to /home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages
Adding lightgallery 0.1.0 to easy-install.pth file
Installed /home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/lightgallery-0.1.0-py2.7.egg
Processing dependencies for lightgallery==0.1.0
Searching for Markdown==3.0.1
Best match: Markdown 3.0.1
Adding Markdown 3.0.1 to easy-install.pth file
Installing markdown_py script to /home/travis/virtualenv/python2.7.14/bin
Using /home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages
Finished processing dependencies for lightgallery==0.1.0
0.26s$ mkdocs build -f ../mkdocs.yml --site-dir doks/
ERROR   -  Config value: 'markdown_extensions'. Error: configs
Aborted with 1 Configuration Errors!
The command "mkdocs build -f ../mkdocs.yml --site-dir doks/" failed and exited with 1 during .

travis.yml :
env:
  global:
    secure: [//key]

language: python # Set the build language to Python

#python: 3.6 # python version

branches: master # Set the branch to build from

install:
    - pip install mkdocs # Install the required dependencies
    - pip install mkdocs-material
    - pip install pymdown-extensions
    - git clone https://github.com/g-provost/lightgallery-markdown.git
    - cd lightgallery-markdown
    - python setup.py install
    - mkdocs build -f ../mkdocs.yml --site-dir doks/

My mkdocs yml:
site_name: name
#repo_url: https://github.com/address
site_description: name

# Customization
extra:
  social:
    - type: globe
    - link: name

# pagination
nav:
    - Project Home: index.md
    - Entity Reference Model:
      - Instruction: instruction.md
      - Artist : et/person.md
      - Artwork: et/artwork.md
    - Modelling Examples:
      - Instruction: pattern/instruction.md
      - Shared: pattern/general.md
      - Temporal: pattern/temporal.md
#     - Conceptual: pattern/conceptual.md
      - Physical: pattern/physical.md
    - Ontology Extension:
      - Extension: schema.md

theme:
  name: 'material'
  logo: 'images/logo.png'
  favicon: 'images/favicon.ico'
  font:
    text: 'Source Sans Pro'
    code: 'IBM Plex Mono'
  custom_dir: 'theme/'
  palette:
    primary: 'white'

markdown_extensions:
  - pymdownx.smartsymbols
  - lightgallery
  - pymdownx.mark
  - markdown.extensions.attr_list
  - pymdownx.superfences
  - pymdownx.details
  - toc:
      permalink: true
  - codehilite:
      linenums: true
  - meta
  - footnotes
  - admonition
  - pymdownx.superfences:
        custom_fences:
          - name: mermaid
            class: mermaid
            format: !!python/name:pymdownx.superfences.fence_div_format

extra_css:
#  -<EMAIL_ADDRESS>  - 'stylesheets/extra.css'
extra_javascript:
#  -<EMAIL_ADDRESS>
Any ideas?

Sorry for the late follow-up.
It has been fixed a while back 93baa8ae3483f506158f39a276138aa02500cff7


📝 Add badges to the README

Summary

This pull request adds badges to the README. This will make the experience for people first viewing our repository better by providing live info and quick links.
Checklist

[ ] I have fully tested all of the added features
[ ] I have fully documented all of the relevant code

I'd like to add badges for CI status, so I'm waiting for something like that to be finished before I open this up for review.


file_exists(): open_basedir restriction in effect since build 467

After upgrading to the latest OctoberCMS version running under PHP 7.4 my sites where generating these Exception errors like:
An exception has been thrown during the rendering of a template ("file_exists(): open_basedir restriction in effect. File(/storage/app/media/logos/vdz-logo.png) is not within the allowed path(s):
Looking into the code I noticed that the storage path was absolute and not reading from the storage folder. By modifying the class everything works fine again. Are there more people suffering this issue? If so can you update the code?
Line 48 in Class Image.php:
$this->filePath = (file_exists(storage_path($filePath)))

+1 I'm bit short on time to do a PR. But just experienced the same issue in a production system.

here as well. somehow many of our servers and reseller hosting packages now have that problem: data-src="{{ background | resize(size_small) }}" as an example


Request: Original models for re-mixing

Hello!
I love the case!
I was thinking of making my own Turing Pi 2 case, not related to yours, but would love to start with your I/O Plate so I don't have to start from scratch.
Would you be willing to share any original models you built? I use Fusion 360 and can import several different formats.
Thanks!

Glad you like it! I just added the Fusion 360 file. Enjoy!


[Bug] Unrecognized advanced option "override_main_response_version"

Hi there 👋🏼
When bumping the module version from 1.2.0 to 1.3.0 I get an ValidationException when running terraform apply, stating that the newly introduced advanced option override_main_response_version is unrecognized.
We are running OpenSearch 1.3 on AWS
module.opensearch.aws_elasticsearch_domain.opensearch: Modifying... [id=arn:aws:es:eu-central-1:***:domain/logging]
╷
│ Error: updating Elasticsearch Domain (arn:aws:es:eu-central-1:***:domain/logging) config: ValidationException: Unrecognized advanced option 'override_main_response_version' passed in advancedOptions.
│
│   with module.opensearch.aws_elasticsearch_domain.opensearch,
│   on .terraform/modules/opensearch/main.tf line 24, in resource "aws_elasticsearch_domain" "opensearch":
│   24: resource "aws_elasticsearch_domain" "opensearch" {
│

Hi @theurichde,
Thank you for opening this issue. It seems that this option can only be enabled via the OpenSearch dev tools...
I think I'll fix that issue by removing the new defaults for advanced_options.


Add --no-qc option to data_pipeline

In the data_pipeline repository it may be useful for time-to-time to easily disable the automated qc of each step (e.g. if working on the other part of the step, if there are bugs in the automated qc, if you want to run step and qc separately, etc).
It is recommended that users should use the QC, so it requires an actual command argument to opt out of i.e. a --no-qc option to match the --qc-only option.

Done as --skip-qc because it is clearer.


Marketplace extensions do not load

After the last update (1.93), the marketplace displays an error message saying "Error fetching extensions. Failed to fetch". No extensions are loaded or displayed in the marketplace.

Version: 1.93.0
Commit: 4849ca9bdf9666755eb463db297b69e5385090e3
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36 OPR/<IP_ADDRESS>
Embedder: vscode.dev

Can you please let us know if there are any network related errors in the console - (F1 > Developer: Toggle Developer Tools) ?


Jäger!

I feel like we should make telemetry reporting a command line flag. It's useful for testing but a potential security risk for deployments. We depend on structopt already, maybe use that? Although I remember someone telling me clap had derive features too now, so maybe use that instead.

I feel like we should make telemetry reporting a command line flag. It's useful for testing but a potential security risk for deployments. We depend on structopt already, maybe use that? Although I remember someone telling me clap had derive features too now, so maybe use that instead.

Yes I think it'd be good to use clap:
"As clap v3 is now out, and the structopt features are integrated into (almost as-is), structopt is now in maintenance mode: no new feature will be added"
from: https://docs.rs/structopt/latest/structopt/

I suggest using a feature flag. We can make opentelementry deps optional then.

I'm really excited about this, currently trying to get it to run! But I had to dig quite a bit to find how to get started, maybe you could add some documentation about:

Which ports are used to communicate and in which direction, does it use encryption etc. This will be useful for test deployments that might communicate over the open internet.
How to get the UI to work (probably just linking to https://docs.rs/opentelemetry-jaeger/0.16.0/opentelemetry_jaeger/#quickstart)


Proposal: Memoization Utility

I would like to propose a utility for memoization that works well in conjunction with D3. The purpose of this is for performance optimization in contexts where a function that uses D3 for DOM manipulation is repeatedly invoked as state changes as a result of user interaction.
I've come to use the "unidirectional data flow" pattern quite a lot in my work. With this pattern, a rendering function is invoked over and over again each time some state changes. This works great on its own, and also works great in conjunction with React (putting the D3 logic inside a useEffect hook and letting React manage the state via useState or something else).
In the React world, when the need arises for performance optimization, I would reach for useMemo. However, when developing purely with D3, there is no corresponding D3 API for addressing the same need.
In order to make the same kind of performance optimizations in D3, it might make sense to introduce an API similar to useMemo. It might make sense to store the memoized value and previous dependencies on the DOM (similar to how the brush or zoom state is stored on the DOM) so that user code doesn't need to manage a global store of memoized values somewhere (which I guess is what React does internally).
Does anyone else face this kind of problem? Would such a utility be of interest? Thanks!

Strawman API proposal:
const filteredData = d3.memoize(
  () => data.filter( ... some logic that uses filterState ... ),
  [data, filterState], // The array of dependencies, just like React's useMemo
  selection.node(), // The DOM node to store the memoized value on
  'filteredData' // A name for this, to support multiple memoize calls on the same DOM node
);

This kind of problem can also be solved by attaching a memoized function to the node using d3.local(), is that insufficient?

That would work, but not in the context of hot reloading (d3.local uses a new ID on each run).
Here's a strawman implementation that works under hot reloading as well:
// Akin to React's useMemo, for use in D3-based rendering.
// Memoizes only one computed value.
// Accepts a function fn and dependencies, like useMemo.
// Also accepts a DOM node and a name for the memoization.
// The memoized value and previous dependencies are stored
// on the DOM node, using the given name.
const memoize = (fn, dependencies, domNode, name) => {
  const property = `__memoized-${name}`;
  const memoized = domNode[property];
  if (
    memoized &&
    dependencies.length === memoized.dependencies.length
  ) {
    let dependenciesChanged = false;
    for (let i = 0; i < dependencies.length; i++) {
      if (dependencies[i] !== memoized.dependencies[i]) {
        dependenciesChanged = true;
        break;
      }
    }
    if (!dependenciesChanged) {
      return memoized.value;
    }
  }

  // If we got here, either it's the first run,
  // or dependencies have changed.
  const value = fn();
  domNode[property] = { dependencies, value };
  return value;
};

Added to https://github.com/curran/d3-rosetta


Is this library maintained anymore?

There are many unresolved issues in this library, some of which are critical problems that have existed for almost a year.
There appear to be no fixes for major problems like #261 or #301.
Is there a new expected release date for fixes? Or should we migrate to a different library?

Same question.

It’s definitely maintained. Just not at the priority it deserves. It’s next on my list after TanStack Router for upgrade.

Thanks for dropping by with the update Tanner. I'm glad it's on your list. Thank you for all you have created for the community.


Standardize formatting of manifests/x/xanderfrangos/twinkletray/1.13.1

Microsoft Reviewers: Open in CodeFlow

@wingetbot run


Add dependency installation steps to README

For testing a local project, opam update and the dependency installation steps are required. The same have been added to the README.

Can we just link to some generic instructions, to avoid duplicating this in every project? @christinerose might know a suitable link.
i.e. something that explains:

How to install opam.
How to git clone a project and install its dependencies.
What to change depending on your version of opam.

I was looking at the README as a quick start guide to know the required steps to get from point A to point B. A short OPAM tutorial will be nice to have though.
I usually do not run opam update to avoid installing latest and greatest packages. If this is required for installation, it is good to know.

Here's a link for "How to Install Opam": https://opam.ocaml.org/doc/Install.html and more info here: https://opam.ocaml.org/doc/Usage.html, but I don't see anything about git clone in there.
I'm also working on docs/tutorials for the new v3 site, so perhaps we can create something specific for Opam there. (??)

@christinerose yes, I'm thinking of a page to cover the common situation of a user who wants to try out a program they found in a repository, but doesn't necessarily know (or want to learn) OCaml or opam.
It would show roughly the same steps you'd get on a project's web-page, but with lots of trouble-shooting hints when there are problems. e.g.

Make you have opam installed (show how to check, link to opam installation instructions, suggest minimum version of maybe 2.1)
git clone repo
cd repo
opam install .

Or, to test it locally without installing:

opam install --deps-only -t .
dune exec -- prog.exe

Explain what to do if opam is too old, opam switch is too old, dependencies need updating, etc.
Then each project can just provide a couple of lines for experienced users (like this one does) plus a link to the page for people who are stuck.

I'm thinking of a page to cover the common situation of a user
An OCaml FAQ will be nice to have!

@talex5 absolutely agree with the common instructions.
@christinerose I can help with providing the short version of what is required, ping me on slack.

As it would be moved outside of this repository, should we consider closing this PR?


Precedence of propositional symbols in expr() function logic.py

Currently, in the expr() function in the logic.py module, >> (implies) takes a higher precedence than & (and). There might be undesirable precedence in other combinations of symbols as well. We wish to have the following precedence order:

~  &  |  >>  %

which, in our module, represent the propositional symbols for:

negation, and, or, implies, biconditional

Solving this will require some good working knowledge of regex in Python. Anyhow, we can always use brackets to be safe, but we may sometimes be surprised when we don't use them.

I think this can be solved using stacks the way normal expressions with arithmetic operations are evaluated. Please correct me if I'm wrong.

Well, parsing expressions is a much worked upon problem in computer science. I am sure there are many, many solutions, even advanced solutions, to this problem.

@chipe1, @chiragvartak you are certainly right -- we could write or import a parser.
I chose instead to overload the infix operators, because I wanted a user to be able to right
P & Q

at the >>> prompt, or in a program, rather than having to write
parse_expression("P & Q")

So our choices are:

Overloaded operators, but some wrong precedence.
A parser, but harder to integrate strings with other code.
Both 1. and 2.

Alright, I understand it now. Changing operator precedence in expr() will work only if we parse the expression from a string every time. This would be tedious, less intuitive and harder to work with for longer statements. I, myself, wouldn't mind putting in a few extra brackets and be able to use operator overloading. We'll have to make sure to remind the users of this though.
My opinion, let's stick with option 1, which is our current way of doing things. If @norvig and @Chipe1 (and anyone else who is watching this issue) agree with me on this, let's close this issue.

OK, we'll stick with operator overloading. There are still some questions about what to overload:

implication operators: use >> and <<, or maybe '>=' and '<='? The later have the right precedence, but the former probably look better. Or maybe don't have any operators, and instead provide functions:
def implies(lhs, rhs): return Expr('==>', lhs, rhs)

logical equivalence/if-and-only-if (<=>) and inequivalence/either-or/xor (<=/=>): I don't think we can reasonably overload == and !=, because we need them to have their native meaning. I think ^ for xor is reasonable, but there aren't any good choices for <=>; maybe % is best. Or no operators and just
def equiv(lhs, rhs): return Expr('<=>', lhs, rhs)

I think using >> and << is better than using >= and <=. Also, I am partial to using % for logical equivalence. After using the module for some time these operators started coming to me quite naturally.
Using functions will create somewhat confusing code, I feel.
So in summary, my suggestion: Let's stick with what we have now.

OK, @chiragvartak.
I think that another option is more lightweight use of Expr. Suppose we had a function, e, that was like Expr except that it is infix rather than prefix, and knows all the alternative names for operators:
 e(A & B, '<=>', B & A)
 e(P | Q, '==>', P)

Since you would otherwise often need extra parens to get precedence right, this would only be adding an extra e and two extra quote characters.

We do have such a function, it is the expr! It satisfies most of the requirements of the e function you described, with just one difference: it takes a single string. That shouldn't be much of a problem though.

Yes, @chiragvartak, expr does do most of this -- and it does more as well. The advantage of allowing it to have multiple arguments, which need not be strings, is that within a program you can do something like
 lhs = some_expr
 rhs = another_expr
 return e(lhs, '==>', rhs)

which you can't do with expr currently.

@chiragvartak and @Chipe1 I propose #182 -- what do you think?

On a different but related note, I see a lot of attention drawn towards implementing interactivity in notebooks. Should I start working on it too? I was more focused on writing algorithms, coding tests and writing notebooks.
Advice?

Interctivity in notebooks would be awesome!


Error handling unsupported buildin methods

I made this smart contract (and first tested it in regular Python)
def fact(f: int) -> int:
    if f <= 1:
        return 1
    return f * fact(f-1)

def main() -> int:
    print(fact(150))

I then tried to compile it using neo3-boa and got this nasty error
Traceback (most recent call last):
  File "/Users/erik/Documents/code/neo3-boa/fib.py", line 32, in <module>
    main()
  File "/Users/erik/Documents/code/neo3-boa/fib.py", line 9, in main
    output = Boa3.compile(path)
  File "/Users/erik/Documents/code/neo3-boa/boa3/boa3.py", line 22, in compile
    return Compiler().compile(path)
  File "/Users/erik/Documents/code/neo3-boa/boa3/compiler/compiler.py", line 32, in compile
    self._analyse(fullpath)
  File "/Users/erik/Documents/code/neo3-boa/boa3/compiler/compiler.py", line 51, in _analyse
    self._analyser = Analyser.analyse(path, log=True)
  File "/Users/erik/Documents/code/neo3-boa/boa3/analyser/analyser.py", line 52, in analyse
    if not analyser.__check_types():
  File "/Users/erik/Documents/code/neo3-boa/boa3/analyser/analyser.py", line 70, in __check_types
    type_analyser = TypeAnalyser(self, self.symbol_table, log=self._log)
  File "/Users/erik/Documents/code/neo3-boa/boa3/analyser/typeanalyser.py", line 47, in __init__
    self.visit(self._tree)
  File<EMAIL_ADDRESS>line 363, in visit
    return visitor(node)
  File "/Users/erik/Documents/code/neo3-boa/boa3/analyser/typeanalyser.py", line 123, in visit_Module
    self.visit(stmt)
  File<EMAIL_ADDRESS>line 363, in visit
    return visitor(node)
  File "/Users/erik/Documents/code/neo3-boa/boa3/analyser/typeanalyser.py", line 140, in visit_FunctionDef
    self.visit(stmt)
  File<EMAIL_ADDRESS>line 363, in visit
    return visitor(node)
  File<EMAIL_ADDRESS>line 373, in generic_visit
    self.visit(value)
  File<EMAIL_ADDRESS>line 363, in visit
    return visitor(node)
  File "/Users/erik/Documents/code/neo3-boa/boa3/analyser/typeanalyser.py", line 860, in visit_Call
    if issubclass(tpe, Exception):
TypeError: issubclass() arg 1 must be a class

The root cause here is that my main() function is wrong. It is not returning anything, but that mistake can't be caught because it throws an exception due to using the print() function. arg1 in the error message is a handle to the print function. This does the same
x = print
issubclass(x, Exception)

Some ideas that come to mind

detect non supported build-in functions (assumed it is buildin related, because replacing print with abs gives the same error) and give a clean error instead of stack trace
if I remember correctly, neo-boa maps print to the VM's log syscall

I've fixed the error in #110. Can you take a look?
The problem was related to a recent change with the implementation of try ... except.

if I remember correctly, neo-boa maps print to the VM's log syscall

It is. It's just not implemented yet in neo3-boa, but when it is it'll also be mapped to log syscall

It is. It's just not implemented yet in neo3-boa, but when it is it'll also be mapped to log syscall

Sounds good. I just wanted to make sure you were aware of the idea


Cannot input negative speed with ESF-MEAS

Describe the bug

Device Model/Generation: u-blox F9R
pyubx2 version: 1.2.22

I can't send a negative speed using the ESF-MEAS message:
import pyubx2
pyubx2.UBXMessage("ESF", "ESF-MEAS", pyubx2.SET, timeTag=1000, numMeas=1, dataField_01=-10, dataType_01=11)

Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/pyubx2/ubxmessage.py", line 107, in _do_attributes
offset, pdict, key, index, **kwargs
File "/usr/lib/python3.7/site-packages/pyubx2/ubxmessage.py", line 165, in _set_attribute
att, offset, index, **kwargs
File "/usr/lib/python3.7/site-packages/pyubx2/ubxmessage.py", line 219, in _set_attribute_group
offset, attd, key1, index, **kwargs
File "/usr/lib/python3.7/site-packages/pyubx2/ubxmessage.py", line 157, in _set_attribute
att, offset, index, **kwargs
File "/usr/lib/python3.7/site-packages/pyubx2/ubxmessage.py", line 333, in _set_attribute_bitfield
self._payload += bitfield.to_bytes(bfs, "little")
OverflowError: can't convert negative int to unsigned
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.7/site-packages/pyubx2/ubxmessage.py", line 82, in init
self._do_attributes(**kwargs)
File "/usr/lib/python3.7/site-packages/pyubx2/ubxmessage.py", line 131, in _do_attributes
) from err
pyubx2.exceptions.UBXTypeError: Overflow error for attribute 'group' in SET message class ESF-MEAS

Hi @FSet89
According to the F9R Integration Manual, the ESF-MEAS dataField attribute is an unsigned 24-bit integer (U24), so this is expected behaviour.

I recommend having another look at the F9R Integration Manual for clarification of how to use the dataField and dataType attributes.

Hi, you're right, however according to the application notes the speed is signed (section 6.1.2): https://content.u-blox.com/sites/default/files/documents/ZED-F9R-GettingStarted_AppNote_UBX-22035176.pdf

Hi, you're right, however according to the application notes the speed is signed (section 6.1.2): https://content.u-blox.com/sites/default/files/documents/ZED-F9R-GettingStarted_AppNote_UBX-22035176.pdf

OK so clearly a discrepancy between different u-blox documentation sources! I'll need to raise this on the u-blox forum for clarification. If it is in fact signed, it should be an easy fix.

FYI https://portal.u-blox.com/s/question/0D5Oj00000XUqA9KAL/ubx-esfmeas-how-to-enter-ve-speed-value-in-datafield


Provide nodeset for VR

should just be a forward and a setter on the forward renderer:
https://doc.stride3d.net/latest/en/manual/virtual-reality/enable-vr.html

need a fix in Stride.

PR done: https://github.com/stride3d/stride/pull/982

PR done: https://github.com/stride3d/stride/pull/982

138ad9e54eddf16402d2f5d6dc7f1c7d14df1866 reverts above commit. So keep this open until new Stride packages are available.

138ad9e54eddf16402d2f5d6dc7f1c7d14df1866 reverts above commit. So keep this open until new Stride packages are available.


End-to-end encryption

Right now I'm using CloudFlare with Flexible SSL. I would like to do better, especially if I ever have any user forms on a site.

Flexible SSL: There is an encrypted connection between your website visitors and CloudFlare, but not from CloudFlare to your server.

S3 supports HTTPS, but only for subdomains without dots in them (eg. hugo-deploy but not nathany.com).
However, S3's static website hosting doesn't appear to support HTTPS.
https://hugo-deploy.s3.amazonaws.com/index.html works
https://hugo-deploy.s3-website-us-east-1.amazonaws.com doesn't resolve

As far as I can tell, it's the same situation for Google Cloud Storage.

https://aws.amazon.com/about-aws/whats-new/2016/09/amazon-cloudfront-now-supports-http2/

CloudFront and ACM: https://github.com/dcarley/dan.carley.co/tree/master/terraform

https://github.com/pkazmierczak/piotrkazmierczak.com/blob/master/.travis.yml


Issue with the response in the version 5.0.0-alpha.14

The version 5.0.0-alpha.14 the response doesn't work fine. When I get the JSON format it responds me like this:
{"id":5,"name":"Pepe","permission":"user"}
instead of this
{ id: 5, name: 'Pepe', permission: 'user' }
then it force me to use a every respond JSON.parse
It doesn't happens in the prior version (5.0.0-alpha.13)

Is this from the request body you receive in your route, or the data returned from road.request?
If it's from the request body, .14 stopped parsing that in the framework, and now requires you to add the body parser middleware: https://github.com/Dashron/roads#parsebody

The respond from some request different to road.request (to use road request is required uses the same road that it was setting for the routers, it is not possible to use independently). But also although I put before of all the rest middlewares road.use(roads.middleware.parseBody) I have the same problem.

Cool then I probably broke it :( Sorry! I'll jump on that tonight or tomorrow night, depending on available time.

and note to self: ADD TESTS FOR THIS haha. I'm surprised I don't have coverage for this already

How are you returning that JSON from your route? At first glance it looks like I do have some tests that should ensure if you return JSON from a route, the request will return a route.
e.g. https://github.com/Dashron/roads/blob/master/tests/tests/road/testRoadRequest.js#L146-L168
Any additional examples you can provide will help me debug this. Thanks!

const options = {
            body: {
                id: 5,
                name: "Pepe",
                permission: "user",
            },
            json: true,
            method: "POST",
            uri: "http://localhost:3000/user",
        };
        const response: any = await rp(options);

it responses like this:
{"id":5,"name":"Pepe","permission":"user"}
instead of this:
{ id: 5, name: 'Pepe', permission: 'user' }

ahhh, interesting. It looks like request-promise is returning a string instead of an object?
My guess is request-promise only returns an object if the response's content-type header is properly set. Can you log out the response headers and see if you can find "content-type: application/json"?
If there is, let me know, and let me know the typeof the JSON response you are receiving to double check you are now getting a string.
If there is not a content-type header, that logic is set outside of roads and inside the server mapping. roads-server handles this here: https://github.com/Dashron/roads-server/blob/master/src/httpServer.js#L89.
I just tested one of my websites with roads .13 and .14, both with roads-server and they both send the proper application/json content-type response header.
Again, if you don't have the proper content-type header as mentioned earlier, try replacing the _sendResponse function in roads-server's httpServer.js with the following and tell me what logs you receive for each of the failed tests.
	_sendResponse (http_response, response) {
		console.log('headers q', typeof(response.headers['content-type']) !== "string");
		console.log('body q', typeof(response.body));
		// wrap up and write the response to the server
		if (typeof(response.headers['content-type']) !== "string" && typeof(response.body) === "object") {
			response.headers['content-type'] = 'application/json';
		}
		console.log('headers2', response.headers);
		http_response.writeHead(response.status, response.headers);

		if (response.body === null) {
			return;
		}
		else if (typeof(response.body) === "object") {
			http_response.write(JSON.stringify(response.body));
		} else if (response.body !== undefined) {
			http_response.write(response.body);
		}

		http_response.end();
	}

Ideally both headers q and body q will be true, and headers2 will have a content-type key of "application/json". If headers q is not true, it means you are setting your own content type header instead of application/json. If body q is not true, it means you are returning a string out of roads, instead of an object for the server to parse into json.

It response with this head:
{ 'content-type': 'application/json',
        date: 'Fri, 02 Mar 2018 16:24:34 GMT',
        connection: 'close',
        'transfer-encoding': 'chunked'
} }

when I receive the response the request post is the unique which I receive as string, the rest is right:
[ { id: 1, name: 'Millie', permission: 'root' },
     { id: 2, name: 'Parras', permission: 'user' },
     { id: 3, name: 'Narges', permission: 'admin' },
     { id: 4, name: 'Lola', permission: 'user' },
     '{"id":5,"name":"Pepe","permission":"user"}' ]

When I run typeof response[4] I get a string as type
this is only happend with the new alpha version.

Yeah it looks like it's not setting the content-type header properly. Let me know when you are able to run the rest of the tests!
We just need to figure out why that content-type header is not being set.

the test result is like this:
headers q true
body q object
headers2 { 'content-type': 'application/json' }

Hmmm those logs look fine. Maybe something after that is stripping out the content type header? Are you able to builder a smaller, more isolated example that fails?
I tried a couple more ideas and have been unable to replicate this.

Hey @dancespiele ,
I did more digging and found this: https://github.com/request/request-promise/issues/24
It sounds like request-promise shouldn't have ever returned an object.
Additionally I used this test script and didn't see any difference between .13 and .14. Let me know if you see any differences, or if my script is missing something important!
"use strict";

let rp = require('request-promise');
require('request-debug')(rp);
let roads = require('roads');
var Server = require('roads-server').Server;

var road = new roads.Road();
let router = new roads.middleware.SimpleRouter(road);

router.addRoute('GET', '/test', function () {
    return new this.Response({'stuff': 'yeah'}, 200);
});

let server = new Server(road, function (err) {
	console.log(err.stack);

	switch (err.code) {
		case 404:
			return new roads.Response('Not Found', 404);
		case 405:
			return new roads.Response('Not Allowed', 405);
		default:
		case 500:
			return new roads.Response('Unknown Error', 500);
	}
});

server.listen(8085, () => {
    console.log('listening');
});

rp({uri: "http://localhost:8085/test"})
.then(function (response) {
    console.log(arguments);
    console.log('response', typeof(response));
});

I will try to create something simple that you can see the issue

I make a simple example here https://github.com/dancespiele/roads-test which you can reproduce the error
To run is:

npm install
npm test

With the example that I wrote above you will see that with the roads 14 alpha version the test fail and it shows by console this {"id":5,"name":"Pepe","permission":"user"}. And if you install the roads version 13 and remove the line app.use(roads.middleware.parseBody); the test will past correctly.

ahh see the issue. The body parameter does not become parsed when you use the parseBody middleware. You have to check the request context via this.body.
You can see an example here: https://github.com/Dashron/roads/blob/master/README.md#parsebody

Another note, arrow functions don't work with request context.
road.use(() => {// no context })
road.use(function () {// working context })

I understand now it. But I thing that before was better in my opinion. You could also add an argument to road if the developers want to use parsebody or not and it set to true by default instead of this. With the new feature the developer cannot use arrow functions and also have to guess that if they want to use parseBody they have to handle this.body instead of body which is the argument that receive and it makes confusing and also it makes your framework less flexible.

First time I didn't like to have the parse body into the this but now I change my opinion therefore I close this ticket

Sounds good. I have mixed thoughts, and went the "easy to build" route for now.
The main concerns are

how to provide access to the unpased string
should args be immutable, and consistent for every middleware function, or changable.

Immutable felt like a safer option for now.


[QEMU] PS/2 Mouse does not recieve input if mouse is moved or keyboard is pressed during initialization

Haven't been able to reproduce outside of QEMU.
If the mouse is moved or keyboard is pressed during ~1 second that the PS/2 controller is being set up, the mouse will not work at all until the system is rebooted.

I think the problem resides in the kernel driver, or in the SeaBIOS implementation it has.

Haven't been able to reproduce outside of QEMU.
If the mouse is moved or keyboard is pressed during ~1 second that the PS/2 controller is being set up, the mouse will not work at all until the system is rebooted.

Well, this is a problem with the controler, and not the kernel itself (I presume).
You see, when your computer boots up, the PS/2 controller needs a brief window of time (~1 second just like you said) to initialize and configure the mouse. If any input through any device is received during this exact time frame, then the controller can become confused, leading to the mouse being unusable after the boot, and requires a restart.
A temporary solution is to just reboot the system, and there is no problem with that, it absolutely works, but then at the same time, it's also not the best way to deal with this problem. So some better solutions (I presume) are to:

Try using a different PS/2 mouse (a very simple and basic fix, but sometimes that might not work too if the situation is different).

Try using some other mouse other than a PS/2 mouse (correct me if I am wrong, because I don't know the reason for you guys to work with a PS/2 mouse, so my opinion might be incorrect).

Try not to use fast boot (if available in this OS) because that might interfere with the mouse's usability after the fast boot, and it might lead to the mouse not functioning at all and requires a restart.

Other than these troubleshooting techniques, I don't think other techniques that might also work are that ideal, so these two are your best odds.
As far as I know, this OS is not bad at all and pretty stable for a startup project and the Readme provides good info about this project, but even if these techniques don't work, then there is a solid chance that there might be something wrong with the kernel just like @peggy-48 stated.

Worse is that it might be a messy BIOS implementation. Try on another computer in this case and give me the results.


Missing response headers

AUTO_CORS_PORT=7777 npx auto-cors

GET http://localhost:7777/https://odrs.gnome.org/1.0/reviews/api/ratings
No headers in response even though original server serves them. (e.g. Content-Type)

Hey @faveoled, I can't repro. Could you try curl with -v argument? Here is what I see:
curl -v http://localhost:7777/https://odrs.gnome.org/1.0/reviews/api/ratings
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying <IP_ADDRESS>:7777...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 7777 (#0)
> GET /https://odrs.gnome.org/1.0/reviews/api/ratings HTTP/1.1
> Host: localhost:7777
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Headers: host,user-agent,accept
< date: Wed, 15 Feb 2023 12:40:33 GMT
< content-type: application/octet-stream
< content-length: 1407420
< last-modified: Wed, 01 Feb 2023 16:07:04 GMT
< etag: "63da8e28-1579bc"
< expires: Fri, 03 Mar 2023 16:38:49 GMT
< cache-control: max-age=2592000, public
< pragma: public
< x-accel-expires: @1677861530
< server: CDN77-Turbo
< x-77-nzt: AVm7uxJNoE3/Jz0SAA
< x-77-nzt-ray: 7c205423e4355f9dc1d2ec6374c51437
< x-cache: HIT
< x-age: 1195303
< x-77-pop: losangelesUSCA
< x-77-cache: HIT
< accept-ranges: bytes
< Connection: keep-alive
< Keep-Alive: timeout=5
...

Strange
curl -v http://localhost:7777/https://odrs.gnome.org/1.0/reviews/api/ratings
*   Trying <IP_ADDRESS>:7777...
* Connected to localhost (<IP_ADDRESS>) port 7777 (#0)
> GET /https://odrs.gnome.org/1.0/reviews/api/ratings HTTP/1.1
> Host: localhost:7777
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Date: Wed, 15 Feb 2023 13:00:36 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
< Transfer-Encoding: chunked
<
{
    "0ad.desktop": {
...


chore: jsonfmt streamanalytics

Ran jsonfmt -w "specification/streamanalytics/**/*.json"

Automation for azure-sdk-for-python

Automation for azure-sdk-for-java

Automation for azure-sdk-for-js

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-go

Can one of the admins verify this patch?


key vault get_secrets ignores maxresults argument

Using the latest version of azure-mgmt-keyvault (0.40.0)
The vault currently has 6 secrets, when I pass maxresults of 1 or any other number it's ignored and the full set of 6 are returned.
vault_url = 'https://xxx-int-vault.vault.azure.net/'
try:
    akv = azure_utils.AzKeyVault()
    secrets = list(akv.az_kv_client.get_secrets(vault_url, maxresults=1))
    print(secrets)
except Exception as e:
    return False, repr(e)

The full set of 6 are returned instead of just 1

@schaabs ?

Closing this issue, I'm sorry we weren't able to address it in a timely manner. Since this issue was created, we made stable releases of KV that should have this fixed:
https://pypi.org/project/azure-keyvault-secrets/
Feel free to open a new issue if necessary.


Funding 2021: Work on guides, ccdproc and infrastructure

Please react to this comment to vote on this proposal (:+1:, :-1:, or no reaction for +0)

Congratulations @mwcraig!  This proposal has the support of the Astropy Community and has been awarded $24,975 to implement.  This PR will be merged, and you can contact<EMAIL_ADDRESS>or reach out on Slack to arrange financial details (see more details in the email to astropy-dev).


Wishlist: SQL-Query generator

Is generating Queries (like MS Access) on the roadmap or a possible future feature? For me that would be the Killer application feature ;-)

What an interesting feature!
It wasn't on the roadmap.
I'll add it.
Thanks for letting me know.

A possible use case I was thinking about was to use it in superset https://github.com/apache/incubator-superset instead of or in addition to e.g: https://superset.apache.org/sqllab.html

Do you know of https://github.com/mWater/jsonql? This seems to be a nice intermediate format/API specification (alternatives may be available, that is just the only one I could find)

It's easy for anyone to use it
It's a standard web interface.
It was the use case I thought.
An example of that was vscode extension.
But I think it's not enough if you don't fully support reverse engineering with SQL DDL.
The https://github.com/mWater/jsonql you told me about
I'll refer to it when I develop it. Thank you!

Sorry, this may be OT, but I thought, I use this issue to link interesting stuff related to this here:
https://github.com/danielrearden/sqlmancer
Sqlmancer is a Node.js library that empowers you to effortlessly and efficiently translate GraphQL queries into SQL statements.
Multiple dialect support. Sqlmancer supports Postgres, MySQL, MariaDB and SQLite, enabling you to incorporate it into existing projects regardless of what flavor of SQL you’re using.
Performance. Avoid the N+1 problem by building a single SQL…
I do not want to distract you from your current great work, quite on the contrary, keep it up :-)

But I think it's not enough if you don't fully support reverse engineering with SQL DDL.

Is there an intermediate JSON format?
Does the full DDL to VUERD conversion pipeline have to be implemented here?
I can think of existing introspection tools that may be adopted to spit out some well-defined JSON.

Intermediate json format does not exist
The conversion pipeline may be implemented externally.
What I'm thinking right now is...
sql-ddl-to-json-schema contributing
or
syntax-parser use
I haven't thought about this yet, so I think it'll be clear when it's developed.

The 'SQL DDL to JSON Schema converter' looks promising, I like the compact format. Another pro for a format like this would be that the target could also be an ORM like SQLalchemy, Hibernate or typeorm.io - many others are also available

https://github.com/xnuinside/simple-ddl-parser also defines a DDL dialect agnostic json schema


[Docs] NoveltySlice Help Files

update noveltyslice
shell out bufnovelty

The parameters are indeed a bit complicated. I usually play with it the way @g-roma recommended:

pick a feature,
put the threshold to 0
play with the kernel size and filter size until it almost make sense in term of what I expect novelty 'is'
tweak threshold and minslicelen to tame the last undesired slices.

does that help?


docs: fix spec in openapi

Fixes breaking builds due to invalid openapi docs

Codecov Report

Merging #797 into master will increase coverage by 0.00%.
The diff coverage is 93.10%.

@@           Coverage Diff           @@
##           master     #797   +/-   ##
=======================================
  Coverage   92.23%   92.23%
=======================================
  Files          66       66
  Lines        5075     5102   +27
=======================================
+ Hits         4681     4706   +25
- Misses        233      234    +1
- Partials      161      162    +1


How is NVLINK information obtained ?

https://github.com/NVIDIA/DCGM/blob/7e1012302679e4bb7496483b32dcffb56e528c92/dcgmlib/src/DcgmApi.cpp#L3515
Hi ,
regarding the function tsapiGetNvLinkLinkStatus, in a deeper level, how is the NvLink status obtained? Is it obtained from the GPU via nvidia driver ?

DCGM uses the NSCQ library, which must be installed separately from DCGM and is bound to the driver version.


Make every file evaluation use Path instead of str

This is useful because filename might or might not be Unicode formatted.
This also helps the user if he/she doesn't want to use to_str function when using Path.

One issue, the file API becomes a tad bit ugly to use:
 assert_eq!(engine.eval_file::<bool, _>("my_script.rhai")?, true);

The extra generic parameter is less nice than just the return type...

How about taking a Path instead?

Then you couldn't pass str straight to it.

Well, that would mean the user has to create a Path object (or PathBuf or whatever)...  I suppose it is not difficult to create from a &str?  Path::new(filename)...

It's true that API becomes more ugly, but I think it's still better to use generics instead of Path, because it allows users to use different parameters like str or String.

Also it would be API breaking change if it takes Path instead of generic type.
For example
assert_eq!(engine.eval_file::<bool, _>("my_script.rhai")?, true);

will become
assert_eq!(engine.eval_file::<bool>(Path::new("my_script.rhai"))?, true);

or something

OK!
I changed it to use PathBuf everywhere.
I think version number should be bumped, because this is API breaking change in some manner.

I think version number should be bumped, because this is API breaking change in some manner.

We haven't been publishing to crates.io as diligently as we should... so no worries!

Ok. Thanks for info! :thumbsup:

Looks good!  One final thing, maybe filename should be rename to path to indicate that it is a PathBuf.
Also line 170 in README will need to be fixed:
let ast = engine.compile_file("hello_world.rhai")?;

Done!

Looks good!


Keybase Chat support

This PR adds support for bridging Keybase chat rooms, fixing #829!
(also just to be clear, I work for keybase but this is an unofficial project I did for fun, no guarantees of support blah blah blah, you get the gist 🙂)

cc @pzduniak

Looks good, thanks a lot! :+1:


Make the pathway-pathway-gene hierarchy clearer

Description of new feature

Let users see the hierarchy, from merged pathway group, to pathway, to genes.

A tooltip on click.
Title: 'Pathway X' for unmerged
Title: 'Pathway group Y' for merged
List of pathways
Update the title of the 'Genes' in the sidebar: 'Genes in Pathway X'

Or going the opposite direction, from genes to pathways.

A highlight on hovering the gene, like in the sidebar in GeneMANIA for a network?
A list?

Motivation for new feature

The hierarchy isn't always clear, and users want to understand it.
The sidebar get cluttered with the pathway lists.
You don't see anything when you click a node with the sidebar closed.

To start:  When a gene is expanded in the sidebar, there is a list of the associated nodes (i.e. the nodes the gene is in).  It's just a plain list, sorted alphabetically by node name.
Later on:  You can interact (perhaps by hover or click) with a node name in the sidebar, under a gene.  When you interact with the node name in the sidebar, the node is highlighted in the network view.  This would make it easier to find the node in the vis.


ATF Test Run Task requires browser/OS fields to be filled in to successfully run if UI Test

From Ramya:
ATF Issue: The ATF task in the pipeline was expecting all the browser and OS parameters to be filled in, unlike its Flow Designer equivalent which would run successfully just with the Test Suite sys_id and Instance Name. Until I filled in all the details, it kept skipping the ATF Tests and the task failed. It would be helpful if browser and OS parameter fields are made MANDATORY in the Azure task.

Hi Chiarng,
Thanks for posting it. A small correction that the browser and OS parameter fields should be made mandatory, not optional. Sorry about the mistake.
Thanks
Ramya Ramadasan

Sorry, @ramyaramdasan, that was my fault! I had made an incorrect assumption in my understanding from your first report. Thanks for clarifying on call today!
For reference to anyone else reading this in the future - Neither the API nor the Spoke require the browser/OS/etc. fields to be filled in to run ATF Test Suites, only sys_id is required. However, it sounds like there are some types of tests that won't run unless you do fill it in.
Next Steps:

Chiarng to clarify with ATF team on which tests require browser/OS input from API to successfully run
Chiarng to think about how to inform developer users that if their ATF Test Suite includes these tests, then they must fill in these currently optional parameters, because they are then required.

I note the API documentation for these parameters says "This value must match what is specified in the scheduled client test runner." https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/cicd-api#cicd-POST-testsuite-run

So I did a bit more testing for the ATF team, just documenting my results here.
I set up a new Test Suite with the OOTB "Basic UI Test".
I had a Client Test Runner opened up in Chrome browser on MacOS.
I used the REST API Explorer to fire off a POST https://chiarngtestdemo.service-now.com/api/sn_cicd/testsuite/run with only the test_suite_sys_id parameter filled in.

Response was 200.

However using the progress api endpoint to pull that run gets the following response
{   "result": {     "links": {       "progress": {         "id": "1580934bdb18a050874fccd8139619af",         "url": "https://chiarngtestdemo.service-now.com/api/sn_cicd/progress/1580934bdb18a050874fccd8139619af"       },       "results": {         "id": "d580934bdb18a050874fccd813961976",         "url": "https://chiarngtestdemo.service-now.com/api/sn_cicd/testsuite/results/d580934bdb18a050874fccd813961976"       }     },     "status": "4",     "status_label": "Cancelled",     "status_message": "All suites were canceled",     "status_detail": "A scheduled client test runner that satisfies these client constraints is not available: | Browser name: Any | Browser version: any | OS Name: Any | OS Version: any",     "error": "",     "percent_complete": 100   } }
So there's something going on there.

Sigh. Ok apparently a "scheduled client test runner" is different from a regular "client test runner".
Have to have a browser window pointed to
https://chiarngtestdemo.service-now.com/atf_test_runner.do?sysparm_scheduled_tests_only=true&sysparm_nostack=true
Back to debugging...

So using the API explorer DOES work when I have a "scheduled client test runner" running.. and passing in just the test suite sys_id (containing ui tests).
I did discover that the progress api endpoint will return the following until the test suite is finished running though.
{
"result": {
"status": "3",
"status_label": "Failed",
"status_message": "Missing CI/CD Role (sn_cicd.sys_ci_automation)",
"status_detail": "",
"error": ""
}
}

After much digging.
https://github.com/ServiceNow/servicenow-cicd-azure-extension/blob/082c1a407fa5df1be2753a2206dc44e52d322bb4/src/extension/Tasks/TestRun/task.json#L53
By defaulting the browser_name parameter in the API calls to value "Any" when nothing other than test_suite_sys_id is submitted where the Test Suite has UI Tests, the progress API will return
"A scheduled client test runner that satisfies these client constraints is not available: | Browser name: Any | Browser version: any | OS Name: Any | OS Version: any"
because there's no "Any" scheduled client test runners.

But in our own documentation https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/cicd-api#cicd-POST-testsuite-run

In conclusion, either the documentation is wrong, because the value "Any" cannot be supplied to browser_name by itself when the only other parameter provided is test_suite_sys_id for an ATF Test Suite that includes a UI Test dependent on a Scheduled Client Test Runner, OR the documentation is right and the feature should accept browser_name with value "Any" as the only other parameter.

For example
https://chiarngtestdemo.service-now.com/api/sn_cicd/testsuite/run?test_suite_sys_id=298f8fc7db18a050874fccd813961918&browser_name=Any
https://chiarngtestdemo.service-now.com/api/sn_cicd/progress/536591db1bd860506a6855ff5b4bcb19
{
    "result": {
        "links": {
            "progress": {
                "id": "536591db1bd860506a6855ff5b4bcb19",
                "url": "https://chiarngtestdemo.service-now.com/api/sn_cicd/progress/536591db1bd860506a6855ff5b4bcb19"
            },
            "results": {
                "id": "5f659d1f1bd860506a6855ff5b4bcb04",
                "url": "https://chiarngtestdemo.service-now.com/api/sn_cicd/testsuite/results/5f659d1f1bd860506a6855ff5b4bcb04"
            }
        },
        "status": "4",
        "status_label": "Cancelled",
        "status_message": "All suites were canceled",
        "status_detail": "A scheduled client test runner that satisfies these client constraints is not available: | Browser name: Any | Browser version: any | OS Name: Any | OS Version: any",
        "error": "",
        "percent_complete": 100
    }
}

Thanks Chiarng! I have modified my pipeline with this fix and it works :)  No more Chrome version updates...yay!


2093 Cards Layout

Responsive cards layout

Before

After

fixes https://github.com/Brain-up/brn/issues/2093


Use System.Threading.Lock on .NET 9.

Alternative proposal to https://github.com/tonybaloney/CSnakes/pull/263.

Works, but please refer to https://github.com/MarkCiliaVincenti/Backport.System.Threading.Lock?tab=readme-ov-file#why-not-keep-it-simple

I'm inclined to go with this approach rather than bringing in an external dependency like #263 does primarily because we're not likely to leverage the methods that the .NET 9 Lock type introduces - unless you can see areas in which we could benefit from it @MarkCiliaVincenti so I can better understand what limitations we might have in our current design.

Nothing in particular, as long as you're aware. Should you need you can then easily switch to the version that uses the backport.

@aaronpowell or @tonybaloney Either of you want to sign off on this so we can get it in?


Revert my changes

Why did you reverse my changes?https://github.com/blogifierdotnet/Blogifier/commit/0dac10c7164b29a21f7978792c002f704e2a2251
Why do not you use async/await?

Actually had to revert it: I'm ok with async/await updates, but there were lots of other changes including switch to SQL Server provider. Under SQLite, I got errors and things like widgets stopped working. In general, it is better to isolate pull requests into single digestible tasks so they can be reviewed and tested more easily.

https://github.com/blogifierdotnet/Blogifier/issues/35

I will work on more tests on these changes and create the PR again.

That would be great, just keep in mind that I need to review and test every pull and if there too many changes, some unrelated to description, it is very hard to guarantee nothing was broken. Better approach would be have single pull for single functionality, so they can be rolled in or reverted individually. I really appreciate you've done tone of work there, but I need to keep code stable.

Alright man, I will change to baby steps each pull request.
Let's go by parts. As Jack the Ripper would say.


undo helper bug

hi.
i found a bug in UndoHelper.
full disclosure: it may be my fault as i submitted a pull request for UndoHelper regarding the snackbar (sorry!)
the bug is that once a snackbar is created for the first time, it is never reinitialized. so, when i call remove(final View view, final String text, final String actionText, @Snackbar.Duration int duration, final Set<Integer> positions), snackbar is NOT null, and therefore simply shown, ignoring "text", "action text", and "duration".
ill see if i have time to submit another pull request soon, but can't promise

That's definitely not the case. The Snackbar is recreated no matter of the fact if it's null or not:
https://github.com/mikepenz/FastAdapter/blob/develop/library-extensions/src/main/java/com/mikepenz/fastadapter_extensions/UndoHelper.java#L121

@mikepenz my bad... wasn't using the latest version


Add id to fields?

I have an array of fields with custom state that I want to remove or add. Each field has a component with an internal state. I use the index of the array for the key but if I remove a field, the internal state is messed up.
I'm iterating like this (simplified):
{child.map((field, index) => <Autocomplete key={index} field={field} />)}

And my Autocomplete component has an internal state changing as the user type.
I have 2 rows: I remove the index 0, the index 1 become the index 0. And the Autocomplete state of the new index 0 get the state of the old index 0 because of the same key.
I thought a lot on how to solve this on my own (I could add ids to each child but I don't wanna touch the field component directly) but didn't manage to find a solution.
So maybe adding custom ids to fields would solve this problem?

Hmm... You're suggesting that each field be given a unique id when it is generated?
That's an interesting idea I hadn't considered.

Yes that's it!

+1, and I wonder if I can specific a unique and fixed id to a field when I call addField, thus I could make it possible when I typed an a in an empty row, then the a was added into the array field, the focused row, meanwhile,  keeped focused.
Just like this mockup:

@xc2 Wow! That's an impressive flow diagram! Interesting, but nonintuitive to me, UI about allowing inputs around whichever input has focus. Yes, having each field have its own unique id will help with that.
I've already coded that into the v6 rewrite that is coming soonish. (< month ?)

@erikras How is the unique ID determined per field? I might be able to offer some insight about this.

I was just going to generate them as the Field components are mounted. That seemed sufficient, but I'm open to better ideas.

In RRF, one can specify the model or a modelGetter, which is any function that returns the model given the state (e.g. the entire form model). With that, you can replicate Angular's track by concept. For example...
const getBillyModel = ({ users }) => {
  const index = users.findIndex((user) => user.id === 'Billy');

  return `users.${index}`; // e.g. "users.3"
}

// This will basically call:
// getBillyModel(store.getState())
<Field model={getBillyModel}>

With lodash and helper functions, it can be simplified:
<Field model={track('users', {id: 'Billy'})}>

This way, the model (which is the true location of the piece of state) can be dynamically computed, without having the reference lost, regardless of if an array is shuffled or modified, or even mutated.

@davidkpiano I'm confused as to where 'Billy' is coming from.

Let's say you have an array of users:
[
  { id: 'Bob', age: 23 },
  { id: 'Billy', age: 34 },
]

and you want your model to track the item where user.id == 'Billy'.

Sure, but this is sort of a non-issue if your array items already have a unique identifier, is it not?

Has something like this ever been implemented ?
Right now in the field array example we have something like
`const renderHobbies = ({ fields, meta: { error } }) => (

 fields.push()}>Add Hobby

    {fields.map((hobby, index) =>

 fields.remove(index)}/>

    )}
    {error && {error}}

)`
This generates something like hobbies:[hobby1,hobby2]...I would like to have an option to have something like hobbies:[{id:1, name:hobby1}, {id:2, name:hobby2}].
Is there a way to do something like this ?
Thanks

I would also like this feature. I am having problems with react drag and drop.

It is actually fairly easy to add ids. I did it like this
handleAddClick(){
this.props.fields.push({
id:uuid.v4(),
name:'A new name',
description:'A new description'
});
};
I hope this helps someone

@hdmsoftware you just saved us a lot of headache, thank you for this.

This thread appears to have died/lost clarity. Doing a code search, I couldn't find that any id generation that ultimately made it in (let me know if I missed something).
Is there anyone who can provide either:

a case where adding (uu)ids to your model data is insufficient?
a clear description of a built-in id generation that would be useful, including a description of the benefits?

@hdmsoftware that question would fall under #2735 / #1458.

Closing this proposal due to a lack of a clear problem statement. If this is remedied, it can be reconsidered.


[Low Fantasy Gaming] Crit damage: Has to be filled manually.

The way attacks look right now on the sheet:

The issue is with the field: 'Crit Dmg'.
The rulebook says: “Critical hits automatically cause maximum damage + half your level (round up) ~ p52 of rulebook”
Right now this has to be filled manually. Is it possible to automate this field?
Tagged @dedurrett who has worked on this sheet before.

“Critical hits automatically cause maximum damage + half your level (round up) ~ p52 of rulebook”
I assume "maximum damage" means the max roll of the base dmg, so in you above example, the character is either level 1 or 2, given that  1d4 base dmg results in 4 + 6 = 6 Crit dmg.

Sure, that sounds possible to automate.

I'll take a look, but given the freedom for die expressions in the base damage field it would be dangerous to make assumptions and try to parse for calculation of the max damage. The functionality provided mimics what I saw in the 4E sheet (the only other system I've played where crits result in "max" damage instead of extra damage).

@Anduh, It would actually be Str mod + max roll + half level.
@deburrett, you do make a fair point. The system gives players a lot of freedom to incorporate their own  created character improvements. A player could change the way crit damage works for example.
Would it be better if i close this issue or do you have an idea to make this work?

Greetings,
Per @dedurrett  suggestion in #5083 , I am going to close this issue. This suggestion, while a good one, is viable to implement at this time. If more intricate dice parsing options come along we it could be evaluated again. :)
Thanks,
Cassie


[WebMethod] can't be invoked when body is empty

Describe the bug
I'm not sure if this is a bug, but it does break existing usage.
When client invokes [WebMethod] in an aspx page, the request is HTTP POST, client side set Content-Type header to "application/json" which is required to invoke WebMethod, but client side send an empty body, in which case the YARP proxy HttpRequestMessage omit the Content-Type header, but this will make the WebMethod invocation return aspx page itself (instead of actually call the WebMethod), which breaks client.
If the body is not empty, everything works fine.
I don't know if this is by design, seems to me HTTP POST without a body and Content-Type set to "application/json" is kind of violating protocol.
Currently I use a transformer to workaround:
        public static HttpRequestMessage WorkaroundEmptyContentWebMethod(this HttpRequestMessage obj, HttpRequest request)
        {
            if (obj.Content == null && obj.Method == HttpMethod.Post)
            {
                if (request.ContentType != null)
                {
                    // MUST set ContentType null, so YARP will copy it from original request
                    obj.Content = new StringContent(string.Empty);
                    obj.Content.Headers.ContentType = null;
                }
            }

            return obj;
        }

To Reproduce
Just HTTP POST (proxy it with YARP of course) to a [WebMethod] in an aspx page, and with no body.
Further technical details

1.0.0-preview.8.21065.1
Windows x64

Duplicate of #618

I don't know if this is by design, seems to me HTTP POST without a body and Content-Type set to "application/json" is kind of violating protocol.

It is a little weird for an application/json body to not include at least the bounding brackets { }. Regardless, this is a situation we should handle better.


Flaky-test: AuthPluginTest.testOauth2

AuthPluginTest.testOauth2 is flaky. It fails sporadically.
example failure
[ RUN      ] AuthPluginTest.testOauth2
2022-06-21 07:11:36.864 INFO  [1399[61](https://github.com/apache/pulsar/runs/6979360746?check_suite_focus=true#step:11:62)864007360] AuthPluginTest:352 | PARAMS: {
        "type": "client_credentials",
        "issuer_url": "https://dev-kt-aa9ne.us.auth0.com/",
        "client_id": "Xd23RHsUnvUlP7wchjNYOaIfazgeHd9x",
        "client_secret": "rT7ps7WY8uhdVuBTKWZkttwLdQotmdEliaM5rLfmgNibvqziZ-g07ZH52N_poGAb",
        "audience": "https://dev-kt-aa9ne.us.auth0.com/api/v2/"}
2022-06-21 07:12:08.582 ERROR [1399618[64](https://github.com/apache/pulsar/runs/6979360746?check_suite_focus=true#step:11:65)007360] AuthOauth2:352 | Response failed for issuerurl https://dev-kt-aa9ne.us.auth0.com./ response Code 500 passedin: audience=https%3A%2F%2Fdev-kt-aa9ne.us.auth0.com%2Fapi%2Fv2%2F&client_id=Xd23RHsUnvUlP7wchjNYOaIfazgeHd9x&client_secret=rT7ps7WY8uhdVuBTKWZkttwLdQotmdEliaM5rLfmgNibvqziZ-g07ZH52N_poGAb&grant_type=client_credentials
/pulsar/pulsar-client-cpp/tests/AuthPluginTest.cc:356: Failure
Expected equality of these values:
  auth->getAuthData(data)
    Which is: AuthenticationError
  pulsar::ResultOk
    Which is: Ok
[  FAILED  ] AuthPluginTest.testOauth2 (31[71](https://github.com/apache/pulsar/runs/6979360746?check_suite_focus=true#step:11:72)9 ms)

<!-- optionally provide the full stacktrace ->

Full exception stacktrace

full exception stacktrace here

Closed as stale.
Please open a new issue if it comes back.


cli: fix issues with datasets add

[x] authors are removed after calling add (related to #119)
[x] files/<NAME>/path is not serialized as str but pathlib.PosixPath
[x] check how the target is joined to origin path (//)
[x] warn when importing local git repository
[x] adding a specific file without using -t doesn't work

closed via #128


Posture generation color contrast

Thank you for such an experienced work, the visualization has tortured me to the point of unconsciousness!
I am currently working on joint prediction. I have seen comparisons between other people’s work and GT. The greater the difference, the more obvious the color. Do you have any examples of this?

Thank you so much!

Yes, this can be achieved with some color maps from matplotlib (not a dependency of aitviewer, so to be installed if it's not yet in your environment):
import os
import numpy as np

from aitviewer.configuration import CONFIG as C
from aitviewer.renderables.smpl import SMPLSequence
from aitviewer.renderables.meshes import Meshes
from aitviewer.viewer import Viewer

if __name__ == "__main__":
    # Load a random AMASS sequence to get some SMPL data.
    c = (149 / 255, 85 / 255, 149 / 255, 0.5)
    seq_amass = SMPLSequence.from_amass(
        npz_data_path=os.path.join(C.datasets.amass, "ACCAD/Female1Running_c3d/C2 - Run to stand_poses.npz"),
        fps_out=60.0,
        color=c,
        name="AMASS Running",
        show_joint_angles=True,
    )

    # Extract two meshes, let's pretend vertices1 is the ground-truth.
    vertices1 = seq_amass.mesh_seq.vertices[0]
    vertices2 = seq_amass.mesh_seq.vertices[30]

    vertices1 = vertices1 - np.mean(vertices1, axis=0, keepdims=True)
    vertices2 = vertices2 - np.mean(vertices2, axis=0, keepdims=True)

    # Swap z and y because for AMASS z is up, but in the viewer y is up. This is usually not required if you don't use AMASS data.
    vertices1[:, [1, 2]] = vertices1[:, [2, 1]]
    vertices2[:, [1, 2]] = vertices2[:, [2, 1]]
    faces = seq_amass.mesh_seq.faces
    faces[:, [1, 2]] = faces[:, [2, 1]]

    # Pick a color map of your liking https://matplotlib.org/stable/users/explain/colors/colormaps.html
    from matplotlib.pyplot import cm
    color_map = cm.get_cmap('viridis', 256)
    color_map_output = color_map(np.linalg.norm(vertices2 - vertices1, axis=-1))

    # Create mesh objects and display it in the viewer.
    mesh1 = Meshes(vertices=vertices1, faces=faces, name="mesh1")
    mesh2 = Meshes(vertices=vertices2, faces=faces, vertex_colors=color_map_output, name="mesh2", position=np.array([-1.0, 0.0, -1.0]))

    v = Viewer()
    v.scene.add(mesh1, mesh2)
    v.run()

Which then looks like this (may be the cool color map would produce more similar results to your screenshot):

Thank you very much for your enthusiastic and detailed answer!

Thank you very much for your enthusiastic and detailed answer!


Java: Create tests to ensure tool call behaviour is correct

The package:

com.microsoft.semantickernel.orchestration

...contains few tests to ensure the functionality remains intact as we make changes.
Create unit tests (and optionally integration tests if it makes sense to do so) for this package and have them reviewed by the team to ensure we cover the most important/most complicated parts.
Consider using OpenAI to help construct these tests! 📎

https://github.com/microsoft/semantic-kernel/pull/5268 merged


Wavy Backgrounds

What is your question?
Is there a custom addGlitchEffect() or a addWavyEffect() shader for psych engine 0.5.2h? I really need them because im putting my 3d backgrounds i made on paint 3d on the engine. please link?

No, those shaders we're removed before 0.5.2 released.

shaders were removed cuz they didnt have permission i think, just get an action build from before they removed the shaders

Oh well, guess i gotta switch to the strident engine.


Automated cherry pick of #8193: feature: add qcloud rds support

Cherry pick of #8193 on release/3.5.
#8193: feature: add qcloud rds support

/lgtm
/approve


Use 0-clause BSD License

Proposal to use a 0-clause BSD License instead of Apache.
(I am not a lawyer.)

@lattwood addressed here https://github.com/kelseyhightower/nocode/pull/335

No conditions for no code. I like it.


[Communication - Calling] Remote users are unable to view the applied video effects applied in a private browser window

Package Name: @azure/communication-calling and @azure/communication-calling-effects
Package Version:

"@azure/communication-calling": "1.13.1"
"@azure/communication-calling-effects": "1.0.1"

Operating system: Windows
[ ] nodejs

version:

[x] browser

name/version: Version 115.0.5790.171 (Official Build) (64-bit) (Incognito mode)

[ ] typescript

version:

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://docs.microsoft.com

Describe the bug
When using Chrome private browsing (an Incognito window) we notice that the video effects are only applied to the local video stream and are not observed by remote users (on all platforms)
To Reproduce
Steps to reproduce the behavior:
Users A and B join a group call (User A is using Chrome Incognito mode)

User A creates a new local video stream and applies video effects (ex BackgroundBlurEffect) and turns on his camera

User A views his local video streams with the effects on.
User B views the unmodified original video stream of user A without the applied effects
Expected behavior
User B should view user A's video stream with the effects applied.
Screenshots
User A's POV:

User B's POV:

Additional context
Add any other context about the problem here.

Hi @yxor , this one seems similar to https://github.com/Azure/azure-sdk-for-js/issues/25912; so assuming you've fixed the device manager issue you had previously, could you please confirm/check if you are rendering the correct RemoteVideoStream on the receiver side?
The incoming video streams of the RemoteParticipant are here in this property - https://learn.microsoft.com/en-us/javascript/api/azure-communication-services/@azure/communication-calling/remoteparticipant?view=azure-communication-services-js#@azure-communication-calling-remoteparticipant-videostreams.
If all seems good from your side, is it possible to get an instance of your application environment where we can repro this? Or code snippets/repo you are working on if it's public.

Hey @pkestikar, thank you for replying.
I can confirm I am definitely rendering the remote video stream correctly on the receiver side. This is made evident that it doesn't matter which browser is used for the receiver (even private mode), it always works.
Using the same code, if the publisher is using Chrome the background effect is successfully applied on the receiver ends, switching to incognito mode it breaks and is no longer applied on the receiver end.
Regarding the instance for reproduction, I don't have anything publicly ready but I will set it up and update you.


Fix exponential backoff values

Context: https://neondb.slack.com/archives/C033RQ5SPDH/p1659629771314369
Part of https://github.com/neondatabase/neon/pull/2168

Also fixes small clippy lint issue for new rustc.
cc @hlinnaka , you've reused the flawed function in the overhaul PR

With this PR and current defaults, the backoff sequence is 1.1, 1.2100000000000002, 1.3310000000000004, 1.4641000000000004, 1.6105100000000006, 1.7715610000000008, 1.9487171000000012, 2.1435888100000016, 2.357947691000002, 2.5937424601000023, 2.8531167061100025, 3.0, 3.0, ... and I wonder, if we should make it to grow slightly more.


[REQUEST] Add additional feeds for end-to-end, functional tests

Is your feature request related to a problem? Please describe.
I've been frustrated when the validator fails and is brittle to different feeds other than MBTA.
Describe the solution you'd like
~5sh additional feeds of varying complexity/quality added to the validator's testing suite  (see issue #405) and continuous integration process.
Describe alternatives you've considered
Running them myself and submitting bugs for each, which isn't ideal b/c developers would ideally catch these bugs before users.

We made progress towards simplifying the process, as can be seen in the End to end GitHub Action workflow executions
https://github.com/MobilityData/gtfs-validator/actions?query=workflow%3A"End+to+end"
We will encourage would be contributors to open PRs in forked repositories in which they update the workflow with datasets of their interest so we could quickly identify critical NPEs issues from data in the wild. The running part would happen in the contained/replicable GitHub environment, easing out the reproducing step. We would be able to diagnose, contribute and pull up code from the PRs.
We intent to demo the procedure during our October 28th deep dive presentation if everything is ready by then. It will consist in a few steps directly through the GitHub web interface to create a fork and directly edit and commit on the workflow file, opening a PR.
The workflow execution result will be visible in the fork GitHub interface as a check on the newly opened PR.
Nothing more required than a GitHub account and a web browser.
It is our hope that will reduce frustration around testing of the validator on a variety of datasets in the short/middle term.

Note that starting from today we provide an artifact containing the json reports for all gtfs datasets ran in the end to end GitHub Action workflow.

It's automatically created for each run. The first run providing it is visible here
https://github.com/MobilityData/gtfs-validator/actions/runs/318541798

FYI, find the relevant updated section of the readme run on GitHub
and Contribute.
The end to end workflow runs will collect the dataset as well as the report validation if any and provide logs of the validator execution. See an example run here and there.
That should provide any member of the public a streamlined and integrated way to raise, investigate, diagnose, propose, collaborate and fix issues.
Thank you so much for bringing that up, it helped coming up with this solution and of course we're open to suggestions and improvements.


About classifier_bert frozen

Hi, there's another question about classifier_bert frozen.
In the paper and documents there's no say about classifier_bert frozen, right?
Is it just because of the two split phases?
When training the classifier, the embeddings inputs into the model are generated by the LIMU-Bert, and could not update the parameters, so it is equal to freezing the model, right?
Thanks a lot!

The classifier_bert.py is to train the classifier by freezing the encoder. The command is the same.

You say “The classifier_bert.py is to train the classifier by freezing the encoder. The command is the same.”, what's the different between classifier_bert.py and classifier.py? I forget the difference between them, even though I read the codes, thanks!

Sorry, I put it in the wrong way. The classifier.py is to train the classifier with embeddings generated by LIMU-BERT, which is equivalent to training the classifier by freezing the encoder (LIMU-BERT). The classifier_bert.py is to train the classifier with LIMU-BERT together, whose parameters can be fine-tuned. The original paper adopts the classifier.py. The classifier_bert.py is for researchers who want to train LIMU-BERT and their down-steam models simultaneously. They can easily adapt classifier_bert.py to their own needs. Hope this clarifies your questions.

Yes， it is so clear!
I think maybe the less data makes the  classifier_bert model get a weak result than the classifier model, and when training a GRU model it needs less data than training LIMU-BERT+GRU model, so it gets a better result in freezing the encoder of the classifier model. In my test when using 1% HHAR data, the gap between the two models is about 5%, the freezing model is better. But in theory, if data is enough the no freezing should be better, right?
Thanks!

Yes, such a small amount of data might not be able to support the training of both the encoder and classifier.

Thanks for your interest again. Please remember to cite our paper. :-)


docs(readme): update instructions for Arch Linux

tukai is now official, let's gooo
https://archlinux.org/packages/extra/x86_64/tukai/

Orhun rn with the package:


add isEmptyOrBlank to test for is.null() and empty string.

Coverage increased (+0.03%) to 87.566% when pulling 6c332d74ef6e2e26e60737c1dd196cb463045892 on kmschoep-usgs:AQCU-660 into 19a6253fb550ce1eadf565ae4648371dec7869c8 on USGS-R:master.

Coverage increased (+0.04%) to 87.572% when pulling 0d9617a47f5cdd3d70361ab99a81ac8a7bac50c0 on kmschoep-usgs:AQCU-660 into 19a6253fb550ce1eadf565ae4648371dec7869c8 on USGS-R:master.

Coverage decreased (-0.006%) to 87.528% when pulling 10d70af8a461ad123427b97bffd09f1a6cb05b9c on kmschoep-usgs:AQCU-660 into 19a6253fb550ce1eadf565ae4648371dec7869c8 on USGS-R:master.

Coverage decreased (-0.01%) to 87.528% when pulling 0a08cffc3bc7877f1004099019c5b79f59dccc91 on kmschoep-usgs:AQCU-660 into 6cd65e6fa73a06671854cbec4662049f6f0d9b05 on USGS-R:master.

Coverage decreased (-0.01%) to 87.528% when pulling 0a08cffc3bc7877f1004099019c5b79f59dccc91 on kmschoep-usgs:AQCU-660 into 6cd65e6fa73a06671854cbec4662049f6f0d9b05 on USGS-R:master.

Coverage decreased (-0.01%) to 87.528% when pulling be128694e64dc9866061781793068c14a6383a47 on kmschoep-usgs:AQCU-660 into<PHONE_NUMBER>22f785c3797329374d8a7023aea76f on USGS-R:master.

Coverage decreased (-0.01%) to 87.528% when pulling be128694e64dc9866061781793068c14a6383a47 on kmschoep-usgs:AQCU-660 into<PHONE_NUMBER>22f785c3797329374d8a7023aea76f on USGS-R:master.