AcmeException Doesn't Exist

To get proper feedback from LE (eg. "rate limit reached"), I needed to do this:
from:
throw [AcmeException]::new($respone.ErrorMessage, $response)

to:
throw [AcmeHttpException]::new($response.ErrorMessage, $response)

and
from ("$this.Message" is read-only):
class AcmeHttpException : System.Exception {
    AcmeHttpException([string]$_message, [AcmeHttpResponse]$_response) {
        $this.Message = $_message;
        $this.Response = $_response;
    }

    [AcmeHttpResponse]$Response;
}

to:
class AcmeHttpException : System.Exception {
    AcmeHttpException([string]$_message, [AcmeHttpResponse]$_response) {
        throw "$($_message)`n$($_response.Content)"
    }
}

Your fix hides the details - essentially (if you want to do something fancy), you'll need access to the Error-Details, which are available via $exception.Response.Content.
I created the neccessary fix and will provide them via the gallery in some days (there are more minor problems I, which should be addressed)

IMHO, the default behavior should be what is most helpful. Here's what I see with the "1.1.4" version of "AcmeHttpException":
New-ACMEOrder "C:\Users\admin\Desktop\tmp\AcmeState" -Identifiers $SanList

At C:\Users\admin\Desktop\tmp\ACME-PS\1.1.4\ACME-PS.psm1:1395 char:13
+             throw [AcmeHttpException]::new($respone.ErrorMessage, $re ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], AcmeHttpException
    + FullyQualifiedErrorId :

As you can see, no helpful feedback.
Here's what I see with the version of "AcmeHttpException" I posted above (2/1 comment)
New-ACMEOrder "C:\Users\admin\Desktop\tmp\AcmeState" -Identifiers $SanList

@{type=urn:ietf:params:acme:error:rateLimited; detail=Error creating new order :: too many certificates already issued for exact set of domains: ...: see
https://letsencrypt.org/docs/rate-limits/; status=429}
At C:\Users\admin\Desktop\tmp\ACME-PS\1.1.4\ACME-PS.psm1:523 char:9
+         throw "$($_message)`n$($_response.Content)"
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (
@{type=urn:iet...s/; status=429}:String) [], RuntimeException
    + FullyQualifiedErrorId :
    @{type=urn:ietf:params:acme:error:rateLimited; detail=Error creating new order :: too many certificates already issued for exact set of domains: ...: see https://le
tsencrypt.org/docs/rate-limits/; status=429}

Here's what a troubleshooter needs to quickly understand and resolve the issue:
error:rateLimited; detail=Error creating new order :: too many certificates already issued

I think the "1.1.4" version is hiding details.

I see the problem.
Nevertheless throwing the error without the $response being attached to the object is good for "interactive", but not for automated environments.
You could for example automatically wait, if you got rateLimited, but that means, you have to access the error-type of the response.
I'm using throw for that, since I want to ensure the pipeline breaking.
So technically I need an Exception, which will stop the pipeline, can be handled with try {} catch {} AND will print a useful error message.

So - NORMALLY - an Exception.Message will be displayed as first line.
But I messed up $response.ErrorMessage, which simply does not exist - it's more or less a typo.
To conclude: I need to use $response.ErrorMessage as Message and I will add $response.Content.Details to the message, if it exists.
That'll make it readable for humans and usable for machines.

Fixed it, and will deploy it as 1.1.5 between monday and wednesday


SSH Conn string does not restrict identity files to a specified file

Describe the bug
LagoonCLI uses a key specified with -i when connecting to an environment via SSH, bypassing the default key that may be loaded in the user's SSH agent, which results in using only the key specified with the -i option. All works as expected. Great.
When running the same command with --conn-string, the returned value does not limit the key to the specified one - the SSH will use any keys currently loaded in the users' SSH agent. This will be OK for majority of cases, but in case when default key is already used in Lagoon in another project, SSHing will fail with "no access" (because it is using the wrong key for the project the client is trying to connect to).
Although the problem is on the client side, there is no consistency between how LagoonCLI handles SSH key internally with how it is printed in the connection string, which is assumed by the user to be the same.
A possible solution is to add -o "IdentitiesOnly=yes" to the printed connection string.
https://github.com/uselagoon/lagoon-cli/blob/643ede5f12f4ca6810da529a6ea3c6770893ea62/pkg/lagoon/ssh/main.go#L123
To Reproduce
Steps to reproduce the behavior:

Create a default SSH key and add it to project1
Create a custom SSH key and add it to project2
Run lagoon -i /path/to/custom_key ssh -p project2 -e master and assert that it is possible to connect
Run lagoon -i /path/to/custom_key ssh -p project2 -e master --conn-string
Copy the output SSH command and try to run
Access denied will be shown since the key from project 1 (default key) will be used.
Add -V to  SSH command and run again - you will see that the default key is offered first.

Expected behavior
Connection string to include all required SSH information that is identical to how LagoonCLI connects.
Proposed solution
Add -o "IdentitiesOnly=yes" to the printed connection string.
https://github.com/uselagoon/lagoon-cli/blob/643ede5f12f4ca6810da529a6ea3c6770893ea62/pkg/lagoon/ssh/main.go#L123

@AlexSkrypnyk we are open to PRs on the CLI if this solves your issue. I haven't had time to work on this, but if you have some time I'm more than happy to review a PR.

If I understand the SSH config page correctly and this s.o post, I think what should be done, if a private key is specified with the -i parameter in Lagoon-CLI, that we add 2 additional options to the SSH command:
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_banana ...

This will prevent all SSH keys being attempted, and instead use the key specified.


Fix code view

Hi,
I found bug in code view
Code view error

HI,  I can't reproduce this issue, is there any error on dev tools?


Fixes 'd[0].toLowerCase() is not a function' error

This error occurs because of myArray.shift();. After that shift(), first value of myArray is 23 which, of course, doesn't have toLowerCase() method. So I just check in assert if d[0] is string.

This looks good, but what do you think about checking if d[0] has a toLowerCase function with d[0].toLowerCase or !!d[0].toLowerCase?

@ahstro we can solve the same problem in multiple ways. I think it is more natural to check if d[0] is string. If d[0] is string then it definitely has toLowerCase method.

That's true right now (and probably will be forever), but I think checking for the presence of .toLowerCase is more lower level - it doesn't make assumptions. Still, I see your point, checking if it's a string makes it more verbose about what we actually want out of the test. I'm torn.

@ahstro why do I check if d[0] is string? Because we actually expect it to be a string. Anyway, if other Issue Mods or Owners want me to change this commit, I'll do amend. Thanks for the discussion.


3D models of color spaces with Plotly

More attractive 3D models of color spaces via Plotly. This opens up the possibility of having interactive 3D models in the documentation (if we choose to do so).

@gir-bot lgtm


larger file sizes

hi cory, i just found your library and have been testing for a while now, it's an awesome library!
i have an issue with imagecreatefromjpeg (i also tried to load it form string, didn't help), however only on my linux system. on my dev system it works fine, on linux it fails with some images. most work fine, i assume it's some meta data issue? i've found a lot of info online with people having similar issues but no solution that wored for me.
i'm running php 5.6.30
here's the GD information:
GD Support	enabled
GD Version	bundled (2.1.0 compatible)
GIF Read Support	enabled
GIF Create Support	enabled
JPEG Support	enabled
libJPEG Version	6b
PNG Support	enabled
libPNG Version	1.2.49
WBMP Support	enabled
XPM Support	enabled
libXpm Version	30411
XBM Support	enabled
i know this is not directly linked to your library but you clearly have spent more time with GD than i have.
maybe you have fixed this before.. thanks for reading and for any good ideas...

What sort of error are you receiving?
Chances are it's not something I can fix. It's more likely the way the image was saved or an incorrect mime type or a metedata issue.
In any case, I need more info to determine what's going on. An actual error message is a good place to start.

There's no error at all, no exception being thrown, imagecreatefromjpeg simply dies... i've found a few threads on forums but nothing that helped me get there... actually most never resolved it. solution mostly is to re-save the file through some imaging software.
i thought maybe you'd have run into the same issue while dealing with images, i'll keep searching, it seems to be a setup related issue. thanks

Nothing in your PHP error log? Strange. Does it appear to be size related? Any noticeable patterns? If you bump up PHP's memory does it work?

funny enough... nada, i force error logging, raised memory, restarted services... pictures from the web always seem to work. it's mostly camera pictures that cause issues, so yes they are bigger than average web images but the issues start with images about 1.5mb so nothing crazy. i'm not completely sure yet if it's meta data or file size...

You usually see a memory error when the file size is too big. Not really sure what it would be. Maybe GD choking on the images internally?
If you figure it out, please post for others who may have the same issue.

will do! thanks for your efforts!!


Upgrade crate version to 0.2.108

(For maintainers: we currently have an unexpected breaking change, don't r+ until it's fixed)

I think the regression was fixed? If so, I hope we'll be able to publish a new version soon. :D

@bors r+

:pushpin: Commit 182de294bd10803c6f3371c9c1551a8df2ddbeeb has been approved by JohnTitor

:hourglass: Testing commit 182de294bd10803c6f3371c9c1551a8df2ddbeeb with merge 72cf1803b693f3e2787f2f8a547615110ba13cea...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13
Approved by: JohnTitor
Pushing 72cf1803b693f3e2787f2f8a547615110ba13cea to master...

Can someone publish it please?

Published on crates.io: https://crates.io/crates/libc/0.2.108

Awesome, thanks!


Feature/create a plan overview

Description
Static HTML/CSS for the plan overview page, I also added a quick dashboard, which ill loop back around to.
https://github.com/CDLUC3/dmsp_frontend_prototype/issues/175
Unintentionally started this card too
https://github.com/CDLUC3/dmsp_frontend_prototype/issues/177
I need some help getting tests working with internationalisation model
Fixes # (issue)
Type of change

[X] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Did cross browser/device testing and ran through the accessibility plugin.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[X] I updated the CHANGELOG.md and added documentation if necessary
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have completed manual or automated accessibility testing for my changes
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Updated these


Use eager_load_path instead of autoload_paths

autoload_paths has been removed in rails5, you should now use
eager_load_paths

lgtm 👍


CLOUDP-105503: Telemetry Improvements

Proposed changes
Adding some improvements to our telemetry capabilities.

Jira ticket: CLOUDP-105503

Closes #[issue number]
Checklist

[ ] I have signed the MongoDB CLA
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added any necessary documentation in document requirements section listed in CONTRIBUTING.md (if appropriate)
[ ] I have addressed the @mongodb/docs-cloud-team comments (if appropriate)
[ ] I have updated e2e/E2E-TESTS.md (if an e2e test has been added)
[x] I have run make fmt and formatted my code

Further comments

This feature branch contains the following PRs (all individually reviewed and merged):

https://github.com/mongodb/mongodb-atlas-cli/pull/1259
https://github.com/mongodb/mongodb-atlas-cli/pull/1263
https://github.com/mongodb/mongodb-atlas-cli/pull/1264
https://github.com/mongodb/mongodb-atlas-cli/pull/1271
https://github.com/mongodb/mongodb-atlas-cli/pull/1282
https://github.com/mongodb/mongodb-atlas-cli/pull/1283

this is scheduled to be merged for after atlas cli v1.1.1 is out, in other words v1.1.2


Invalid output file

Hi,
I'm using following data: https://gist.github.com/dcdamien/9e50948219d3792307521c43b3108877
And following templates:

{d.type}
{d.numberAssignments[i=0].designation}
{d.seller.address.phoneNumbers[i=0].number}

itemName

{d.lines[i].itemName}

{d.lines[i+1].itemName}

Carbone generates correct output files only when using single of them, but when they are merged into one template, output file gets corrupted. Opening file in Microsoft Word ends with The file cannot be opened because there are problems with the contents error.
output-files.zip

I have done further tests and unfortunately looks like there is more issues.
Using following template:
{d.buyer.name}
{d.numberAssignments[i=1].designation}

approveDate

{d.approveDate:convDate("YYYYMMDD", "LL")}

itemName

{d.lines[i].itemName}

{d.lines[i+1].itemName}

Result looks as below:

Original files attached: original-files.zip

Hi, thank you for your samples. I can reproduce it. 🤔  Strange... quite simple case.
I will fix it as soon as I can this week...

In fact, I know this bug!
@dcdamien  there is a workaround:
Create a "horizontal repetition block" [i] ...[i+1] and use the filter i=0 in the same time for each array, like this:
{d.type}
{d.numberAssignments[i, i=0].designation}{d.numberAssignments[i+1, i=0].designation}
{d.seller.address.phoneNumbers[i, i=0].number}{d.seller.address.phoneNumbers[i+1, i=0].number}

The solution is not intuitive but the result is the same.
Is it ok for you?
When we use a filter [i=0] (without repetition), it affects other repetitions... I know where the problem is but the solution is not simple. Again, I hope I will fix it this week to close definitely this issue

@dgrelaud i'm not sure if it workaround is completely effective.
Please look at following attempts:
1.
template:
{d.buyer.name}
{d.numberAssignments[i, i=0].designation} {d.numberAssignments[i+1, i=0].designation}
{d.seller.address.phoneNumbers[i, i=0].number} {d.seller.address.phoneNumbers[i+1, i=0].number}

approveDate

{d.approveDate:convDate("YYYYMMDD", "LL")}

itemName

{d.lines[i].itemName}

{d.lines[i+1].itemName}

output:

2.
template:
{d.buyer.name}
{d.numberAssignments[i, i=0].designation} {d.numberAssignments[i+1, i=0].designation}

approveDate

{d.approveDate:convDate("YYYYMMDD", "LL")}

itemName

{d.lines[i].itemName}

{d.lines[i+1].itemName}

output: corrupted-file
Please note that only difference is occurrence of 3rd line: {d.seller.address.phoneNumbers[i, i=0].number} {d.seller.address.phoneNumbers[i+1, i=0].number}
I'll patiently wait for bugfix.

The last week was not long enough to fix this bug... I do not forget you ;)

Hi @dgrelaud. Hope you're doing well. Have you any schedule on next release which will include fix?

Hi,
Sorry, I'm very busy currently. I was a bit optimist... I hope to fix it at the beginning of October.

@dgrelaud if you know this bug maybe can you give some more information about it? We can try to fix it ourselves..

Hi @dgrelaud, any news? hints?

Hi,

if you know this bug maybe can you give some more information about it? We can try to fix it ourselves..

Yes, good idea. But it is hard to explain 😞 .
The philosophy of Carbone is to generate JS code for each report (and cache it => todo) in order to build the report as fast as possible. This part is not easy.
Roughly, when carbone sees  d.myArray[i=1], it considers there is an XML row to repeat whereas it is not the case. It should generate JS code to iterate myArray, filter and find the row which matches with the filter i=1 and generate XML as if it was an object.
You can try to add your test case in test/test.builder.buildXML.js
The problem is in lib/builder.js in getBuilderFunction.
Sorry, I was a bit optimist on my agenda.

Is there a workaround for array based data?

Just some news. I am not dead, just very busy.
This bug is solved internally!
I have to clean the code, push ans publish everything.
Stay tuned.

fixed in v1.1.0


Final bump navstar for 1.10

High Level Description
Bump navstar to include a fix for coreOS 1465+
Related Issues

DCOS_OSS-1574 Navstar is unhealthy on Core OS 1465+

Checklist for all PR's

[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): https://github.com/dcos/navstar/compare/dcfb1e1c64ec757ea766668c0a8f3615f5bdc264...ce160d474c885ef74510beda7321993ef29078c2
[x] Test Results: https://circleci.com/gh/dcos/navstar/464
[x] Code Coverage (if available): https://codecov.io/gh/dcos/navstar/pull/92

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and Review Process
What is the review process and when will my changes land?
All PRs require 2 approvals using github's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

@urbanserj @nlsun Please review

@mesosphere-mergebot Ready For Review

This is the only PR ready for the 1.10.0 milestone. Going ahead without a train.

@mesosphere-mergebot bump-ee


ReferenceError: Unknown plugin "replace-require"

I'm getting an error about a missing babel plugin. I didn't think it would get hung up on nested .babelrc files?
My test:
import React from 'react';
import { Switch } from 'react-native';
import renderer from 'react-test-renderer';
import 'jest-snapshots-svg';

test('renders the Switch component', () => {
  const component = renderer.create(<Switch />).toJSON();
  expect(component).toMatchSnapshot();
  expect(component).toMatchSVGSnapshot(480, 640);
});

Relevant part of my package.json:
	"devDependencies": {
		"babel-preset-react-native": "4.0.0",
		"jest": "^22.0.4",
		"jest-snapshots-svg": "^0.0.24",
		"react-test-renderer": "16.0.0"
	}

My .babelrc:
{
  "presets": ["react-native"]
}

The error:
 FAIL  __tests__/svg.js
  ● Test suite failed to run

    ReferenceError: Unknown plugin "replace-require" specified in "<path_to_my_project>/node_modules/yoga-layout/.babelrc" at 1, attempted to resolve relative to "<path_to_my_project>/node_modules/yoga-layout"

      at node_modules/babel-core/lib/transformation/file/options/option-manager.js:180:17
          at Array.map (<anonymous>)
      at Function.normalisePlugins (node_modules/babel-core/lib/transformation/file/options/option-manager.js:158:20)
      at OptionManager.mergeOptions (node_modules/babel-core/lib/transformation/file/options/option-manager.js:234:36)
      at OptionManager.init (node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
      at File.initOptions (node_modules/babel-core/lib/transformation/file/index.js:212:65)
      at new File (node_modules/babel-core/lib/transformation/file/index.js:135:24)
      at Pipeline.transform (node_modules/babel-core/lib/transformation/pipeline.js:46:16)

Could you check if there’s a babelrc file in node_modules/yoga-layout?

maybe in the babel config somewhere we can ignore node module's babelrcs?

@jacobp100 Yes there is
{
  "presets": ["stage-3", "es2015"],
  "plugins": [
    "transform-flow-strip-types",
    [
      "replace-require",
      {
        "fs": "{}",
        "path": "{}"
      }
    ]
  ]
}

https://github.com/facebook/yoga/blob/master/javascript/.babelrc

@orta From what I understand this will be the default behavior in babel v7 but I can't find a way to configure it to do that with babel v6 right now...

I think we need a yoga-prebuilt package, which just contains the build output from yoga. I'll try and work on this at some point.
But until I've done this, this bug lies with yoga.

Ah maybe a quick fix would be to add their .babelrc to the .npmignore?

Ok so after I delete node_modules/yoga-layout/.babelrc I get:
ReferenceError: Unknown plugin "add-module-exports" specified in "<path_to_my_project>/node_modules/string-pixel-width/.babelrc" at 0, attempted to
 resolve relative to "<path_to_my_project>/node_modules/string-pixel-width"

And then after I delete that one I am able to use toMatchSVGSnapshot 🎆

Weird. Try updating jest-snapshots-svg. We removed that dependency when we refactored the text layout.

I have the latest (0.0.24). It looks like the change you're referring to hasn't been released yet: https://github.com/jest-community/jest-snapshots-svg/commit/d9035a2f4848cfe240ed508cf8ebab414bc936ba#diff-b9cfc7f2cdf78a7f4b91a753d10865a2


Daily dev

Hello @konchokdolma! Thanks for submitting the PR.

In the file autonomio/_utils/callbacks.py, following are the PEP8 issues :

Line 18:5: E741 ambiguous variable name 'l'

In the file autonomio/commands/hyperscan.py, following are the PEP8 issues :

Line 194:5: E741 ambiguous variable name 'l'

In the file test_script.py, following are the PEP8 issues :

Line 108:1: E722 do not use bare except'
Line 141:1: E741 ambiguous variable name 'l'
Line 209:1: E741 ambiguous variable name 'l'
Line 234:1: E722 do not use bare except'

Coverage decreased (-0.02%) to 83.296% when pulling 6cf98b7e2df0a71b79817565a5b6556bf598260e on daily-dev into 176e54e7778ee3c652179df84ce4a2847f405b0d on dev.

Great work, thanks! :) Maybe when you have time you can work on the coverage a little.


Drop Support for Rack and Sinatra 1.x

Sinatra depends on Rack 1.x which does not support Rack::Events API.

[ ] Write up documentation for last supported version of Sinatra 1.x
[ ] Upgrade minimal gemspec dependencies to Sinatra > 2

Thank you for your service, ancient Rack and Sinatra. Retire and enjoy the pasture in peace.

Hi,
I would like to work on this issue. Would you assign this to me?
As a first time contributor, any guidelines or help will be greatly appreciated.

Thanks @Anu-MT !
The contributing guide is here: https://github.com/open-telemetry/opentelemetry-ruby-contrib#contributing
Please let me know if you have any questions.

Hi,
I have removed the support for 1.x from instrumentation/sinatra/Appraisals.
Could someone guide me on other changes to be made,please?

@Anu-MT Take a look at the task list in the description to see what is left to do :)

@Anu-MT Take a look at the task list in the description to see what is left to do :)

Would you confirm the appropriate README.md file to add the documentation about last supported version of Sinatra 1.x,please ?

Sure thing. Every gem in the contrib repo has a Readme and in the case of Sinatra it's here:
https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/sinatra/README.md

Sure thing. Every gem in the contrib repo has a Readme and in the case of Sinatra it's here:
https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/sinatra/README.md

Thank you very much

I opened a new PR for this.  This issue makes note of documenting the support for version 1.x. Though given that the last version of Sinatra 1.x was January of 2017 I opted to not do this? What is the ... documented/documentation support lifecycle for something like this?
If this is wanted, I can document the version required to support Sinatra 1.x in the readme.

Great question @zacheryph
We do not have this formally documented but here is an example of what we normally do:
https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/rails#version-compatibility


please merge scrcpy and adb in appimage . my os cannot install it , thank you :)

Sorry to reply you so late, scrcpy does not provide a separate binary file in Linux, so I do not have a more convenient way to integrate it for the time being. If you have a better scheme, please pull the request

x86 version of linux has integrated scrcpy


Feature/issue 1846 multinomial nuts

Submisison Checklist

[x] Run unit tests: ./runTests.py src/test/unit
[x] Run cpplint: make cpplint
[x] Declare copyright holder and open-source license: see below

Summary
Change the defaults NUTS sampler to sample from trajectories multinomially instead of with the original slice sampler.  The original implementation has been preserved as "nuts_classic".  Addresses #1846.
Intended Effect
Minimal user-facing affects.  Allows for cleaner code and facilitates research.
How to Verify
Run tests, try recovering known expectations from analytic models.
Side Effects
Small changes to exact sampler output but expectations should be the same with the MCMC standard error.
Documentation
None.
Reviewer Suggestions
Anyone.
Copyright and Licensing
Copyright: Michael Betancourt
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

Where are the Windows tests failing?

It's a compiler warning. Windows never ceases to amaze me.
d1m1s1b1.stat.columbia.edu:8080/job/Stan Pull Request - Windows - Tests - Unit/639/warnings18Result/new/
Change EXPECT_EQ() to EXPECT_FALSE()

On Apr 7, 2016, at 6:20 PM, Michael Betancourt<EMAIL_ADDRESS>wrote:
Where are the Windows tests failing?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

@bob-carpenter NUTS classic is a copy of the existing implementation which has been in production for some time.  Many of the points being raised were cleaned up in the new implementation -- I'd rather keep NUTS classic as it is.

Got it.  See previous comment.  This inline commenting thing is tough
to follow!

On Apr 8, 2016, at 12:28 PM, Michael Betancourt<EMAIL_ADDRESS>wrote:
@bob-carpenter NUTS classic is a copy of the existing implementation which has been in production for some time. Many of the points being raised were cleaned up in the new implementation -- I'd rather keep NUTS classic as it is.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

This is good to go from the code perspective.  All of my comments were superficial points about coding style and idioms.  I like this new algorithm approach, too.
@syclik Is this going to be OK upstream with the interfaces?  If so, go ahead and merge.

Yup! No issues upstream.
On Fri, Apr 8, 2016 at 1:11 PM, Bob Carpenter<EMAIL_ADDRESS>wrote:

This is good to go from the code perspective. All of my comments were
superficial points about coding style and idioms. I like this new algorithm
approach, too.
@syclik https://github.com/syclik Is this going to be OK upstream with
the interfaces? If so, go ahead and merge.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/stan/pull/1848#issuecomment-207520649


The Toggle button in TabsBar should be hidden when there are less Circuit Designs openned.

Is there an existing issue for this?

[X] I have searched the existing issues.

Describe the bug
The toggle button in the Tabs Bar is always visible even if there is a single circuit opened that is of no use.
Steps to Reproduce

use conditional rendering.

Expected Behavior
When there are Less number of Circuit Designs Opened the toggle switch should be hidden and when the number of  Circuit Designs exceeds i.e. it cannot fit in a single line in the Tab Bar the toggle button should become visible.
Screenshots

Is the faced issue/bug related to the Vue simulator?
Yes
Used Vue simulator with or without backend?
Without Backend
Is the bug present only on the dev server, the build, or both?
Both
Device Information
OS: Windows 10
Browser: Chrome

Additional Context
No response
Are you working on this issue?
Yes

can i try fixing this?


Lossless Logging Support

As mentioned in #79 logging support is gonna be a big deal.
For now I just threw together some really simple (and exhaustive) code to mark down timings for each stage.
What this will allow me to do is profile #98 properly.
In the future we can rip out a decent amount of this and replace with it something more Pythonic using static variables or something.

Thanks! This will be a great feature to have.  I'll give this a look this week.

Thanks for doing this @Andesha - I think we can use a decorator function here to remove the need to track the t0's t1's in _run. Mind if I take a wack at it?

go for it!


Cache generated object after its been called

For this I think we'll modify the api to only have one global function that will cache and export different formats.


analyze lowered code in lowering tests

What was wrong?
The lowering tests do not analyze the lowered code which has let a regression slip through (#623)
How was it fixed?
Analyze lowered module.
To-Do

[ ] OPTIONAL: Update Spec if applicable

[ ] Add entry to the release notes (may forgo for trivial changes)

[ ] Clean up commit history

This one has been languishing at the bottom of the list, ignored by all reviewers :(
I made the equivalent change in #629. Closing.


Introducing stable alias for buildapi to ease version bumping

Instead of doing those changes for each bump in the build api (v1alpha2, v1beta1, ...), we introduce a stable alias "buildapi" which points to the api version which is used (currently still v1alpha1).

I resolved the merge conflict with the generated file. @matthewmcnew Should we continue with this? WDYT?

Codecov Report

Merging #675 (eb6cb14) into master (ed7fe50) will not change coverage.
The diff coverage is 55.75%.

@@           Coverage Diff           @@
##           master     #675   +/-   ##
=======================================
  Coverage   66.93%   66.93%
=======================================
  Files          89       89
  Lines        3638     3638
=======================================
  Hits         2435     2435
  Misses        853      853
  Partials      350      350

Impacted Files
Coverage Δ

pkg/blob/resolver.go
0.00% <0.00%> (ø)

pkg/buildchange/change.go
100.00% <ø> (ø)

pkg/cnb/cnb_metadata.go
58.97% <ø> (ø)

pkg/cnb/mountable_buildpack_layer.go
75.75% <ø> (ø)

pkg/git/resolver.go
0.00% <0.00%> (ø)

pkg/logs/build_logs.go
0.00% <0.00%> (ø)

pkg/reconciler/build/sort.go
0.00% <ø> (ø)

pkg/reconciler/clusterstack/clusterstack.go
70.37% <ø> (ø)

pkg/reconciler/clusterstore/clusterstore.go
70.37% <ø> (ø)

pkg/reconciler/image/build_list.go
100.00% <ø> (ø)

... and 28 more

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 ed7fe50...eb6cb14. Read the comment docs.

I know @tomkennedy513 had concerns on this. Could you share them here?

That would be good to hear. Our main concern about using different versions of build api at once like in #555 is that it becomes very error prone and the errors might get very subtle.

My main concern was that it is now vague which version we are using. Also, I assumed that going to a new api version would be due to changes in the underlying structure so bumping the api isn't as simple as changing the import. if we were to add a new source type for an image or change the cache structure simply changing the import wouldn't work, but I do believe it would greatly reduce the surface area of changes required.
That being said, I actually think the value of preventing multiple versions from being used at once may make this worth accepting, unless there is a good reason to allow multiple versions (ie bumping some resource versions but not all)

My main concern ...

That is right, but I would argue that this is one of the nice things of this approach. When doing structure changes, it probably involves 1 or 2 files. Using a hardcoded api version everywhere in the code, causes the risk that latest api version is used if the structural change is not relevant.
Correct me if I am wrong, but except from the api itself (pkg/api/<oldversion>), there is no need to ever use a version that is not the latest, right? So why hardcode it all over the place when it has to be changed everytime anyway?

bumping the api isn't as simple as changing the import

For most file it should be, shouldn't it?

bumping some resource versions but not all

What would be a valid reason to bump only a specific resource? Wouldn't you potentially end with something like...

Build exists in v1alpha1,v1alpha2 and v1alpha3
ClusterStore exists in v1alpha1 and `v1alpha2
ClusterStack only exists in v1alpha1

imho, each api version should be "complete" and the code should only work with the latest version (except webhooks). But this is enforced by using served: true on the latest version, right?

@tomkennedy513 @matthewmcnew This pr has still a needs discussion label. If I recall correctly, there were no open questions in the last community meeting and we agreed this could be merged. Let me know if there are still open points!

I have rebased it and it is not based on 9e103a523e624be1f4e17424853500d59a00428d (HEAD of main). I do not know why it is still shown as "out-of-date". Any ideas?

@c0d1ngm0nk3y the rest of the team is working on reviewing this, but in the meantime is there any way you could squash these commits down

@c0d1ngm0nk3y the rest of the team is working on reviewing this, but in the meantime is there any way you could squash these commits down

I normally keep the commits because they sometimes help reviewing and use the "squash and merge" feature from github. But for kpack, the PR gets automatically merged once reviewed, right? I will squash them manually.

@c0d1ngm0nk3y the rest of the team is working on reviewing this, but in the meantime is there any way you could squash these commits down

I normally keep the commits because they sometimes help reviewing and use the "squash and merge" feature from github. But for kpack, the PR gets automatically merged once reviewed, right? I will squash them manually.

They actually don't get merged automatically so we can use the squash and merge feature when we do merge it

Thanks!


Error on deck.deal

I am running a simple example:
var Shuffle = require("shuffle");
var deck = Shuffle.shuffle();
var card = deck.draw();
var player1, player2;
deck.deal(5, [player1, player2]);
console.log(player1, player2);
console.log(deck.length);
This results in an error on line 16 of deck.js  TypeError: Cannot read property 'push' of undefined

You haven't defined player1 and player2, they need to be arrays.  This should work:
var Shuffle = require("shuffle");
var deck = Shuffle.shuffle();
var card = deck.draw();

var player1 = new Array;
var player2 = new Array;
deck.deal(5, [player1, player2]);

console.log(player1, player2);
console.log(deck.length);

@daniwaxman as @AlexCPU pointed out, you'd need to pass in an initialized array for each hand. I've updated the README to clarify this (it incorrectly showed passing in uninitialized arrays in the example). I've also updated the deal function to throw a helpful error message if anyone forgets.
Updates available in 0.2.4.


njit on f2py wrapped code

Feature request

Hi,
is there a way to use numba in no python mode on functions that were wrapped with f2py?
thanks

@Mobbybobby Numba has support for calling functions from external libraries via ctypes (docs: https://numba.readthedocs.io/en/stable/reference/pysupported.html?highlight=ctypes#ctypes). Should the f2py compiled library export a symbol to the underlying fortran function then it should be possible to bind to this. Note that extreme care will be needed with regards to memory managements (i.e. be aware of returning allocations from Fortran and potential lifetime issues).

xref: https://github.com/numba/numba/issues/3086 which should provide some hints and examples.

Thanks for the response. When trying to get the adress I get this error:
AttributeError: module 'BPS' has no attribute '__pyx_capi__'
Sry.. I'm not familiar with ctypes :/

I got the wrapping to work but numba doesn't work:
Failed in nopython mode pipeline (step: nopython frontend)
Unknown attribute 'c_double' of type Module(<module 'ctypes' from 'C:\\Program Files (x86)\\Python37-32\\lib\\ctypes\\__init__.py'>)

This is the function that produces that error:
@njit(error_model="numpy")
def dedx_BPS(E, T, n, m_i, z_b):  # z_b : Projectile charge, E : Energy in MeV, T : Temperature in keV,
    # n: Electron density in 1/cc, m_i: Projectile mass in g, Output in MeV/mm
    c_double = ct.c_double
    pointer = ct.POINTER(c_double)
    byref = ct.byref
    lib = ct.cdll.LoadLibrary('lib.so')
    dedx_BPS1 = lib.dedx_bps_
    dedx_BPS1.argtypes = [ct.POINTER(ct.c_int),
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer,
                          pointer]
    ne = np.array([n], dtype=c_double, order='F')
    Te = np.array([1 / T], dtype=c_double, order='F')
    zb = np.array([-1], dtype=c_double, order='F')
    mkev = constants.c ** 2 / constants.eV / 1000
    mb = np.array([constants.m_e * mkev], dtype=ct.c_double, order='F')
    x1 = c_double(0)
    x2 = c_double(0)
    x3 = c_double(0)
    x4 = c_double(0)
    x5 = c_double(0)
    x6 = c_double(0)
    x7 = c_double(0)
    x8 = c_double(0)
    x9 = c_double(0)
    dedx_BPS1(byref(ct.c_int(1)), byref(c_double(1e-7)), byref(c_double(E * 1000)),
              byref(c_double(z_b)), byref(c_double(m_i / 1000 * mkev)),
              Te.ctypes.data_as(pointer), zb.ctypes.data_as(pointer),
              mb.ctypes.data_as(pointer), ne.ctypes.data_as(pointer),
              byref(x1), byref(x2), byref(x3), byref(x4), byref(x5), byref(x6),
              byref(x7), byref(x8), byref(x9))
    return np.ctypeslib.as_array(x1)

It seems that numba doesn't know ctypes?
Pls help

I'm on windows and python 3.7 btw.

@esc Can you help me? Should i start a new issue?

@Mobbybobby the Numba engineers are currently preparing a release candidate for Numba 0.55 https://github.com/numba/numba/milestone/56 and so are unfortunately a little pushed for time at present. I'll help you with this if you are still stuck once the RC is done (so hopefully in about a week), alternatively you could ask on https://numba.discourse.group/ where the Numba community might be able to provide support more quickly (it's also a better place for asking questions than the issue tracker). Thanks for your understanding.
Side note: Just skimming the code above, Numba can understand the ctypes types but not the entire module. You need to get your code to look something more like: https://numba.discourse.group/t/how-to-register-an-existing-builtin-function/350/4

@stuartarchibald Thank you for responding. I'll try my best getting it to work with your example. I will report about my success in a week :)

hey @stuartarchibald.
I think i got it working like this:
import numpy as np

import scipy.constants as constants

import ctypes as ct

from numba import njit

lib = ct.cdll.LoadLibrary('lib.so')
dedx_BPS1 = lib.dedx_bps_
c_void_p = ct.c_void_p
dedx_BPS1.argtypes = [c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p]

@njit(error_model="numpy")
def dedx_BPS(E, T, n, m_i, z_b):  # z_b : Projectile charge, E : Energy in MeV, T : Temperature in keV,
    # n: Electron density in 1/cc, m_i: Projectile mass in g, Output in MeV/mm
    float64 = np.float64
    array = np.array
    ne = array([n], dtype=float64)
    Te = array([1 / T], dtype=float64)
    zb = array([-1], dtype=float64)
    mkev = constants.c ** 2 / constants.eV / 1000
    mb = array([constants.m_e * mkev], dtype=float64)
    scale = array(1e-7, dtype=float64)
    E = array(E * 1000, dtype=float64)
    z_b = array(z_b, dtype=float64)
    m_i = array(m_i / 1000 * mkev, dtype=float64)
    x1 = array(0.0)
    x2 = array(0.0)
    x3 = array(0.0)
    x4 = array(0.0)
    x5 = array(0.0)
    x6 = array(0.0)
    x7 = array(0.0)
    x8 = array(0.0)
    x9 = array(0.0)
    dedx_BPS1(array(1).ctypes.data, scale.ctypes.data, E.ctypes.data,
              z_b.ctypes.data, m_i.ctypes.data,
              Te.ctypes.data, zb.ctypes.data,
              mb.ctypes.data, ne.ctypes.data,
              x1.ctypes.data, x2.ctypes.data, x3.ctypes.data, x4.ctypes.data, x5.ctypes.data, x6.ctypes.data,
              x7.ctypes.data, x8.ctypes.data, x9.ctypes.data)
    return x1 * 10 ** 3

But it is slower than using f2py without njit. Did I do something wrong?

@stuartarchibald I got working like this:
import numpy as np

import scipy.constants as constants

import ctypes as ct

from numba import njit

lib = ct.cdll.LoadLibrary('lib.so')
dedx_BPS1 = lib.dedx_bps_
c_void_p = ct.c_void_p
dedx_BPS1.argtypes = [c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p,
                      c_void_p]

@njit(error_model="numpy")
def dedx_BPS(E, T, n, m_i, z_b):  # z_b : Projectile charge, E : Energy in MeV, T : Temperature in keV,
    # n: Electron density in 1/cc, m_i: Projectile mass in g, Output in MeV/mm
    float64 = np.float64
    array = np.array
    ne = array([n], dtype=float64)
    Te = array([1 / T], dtype=float64)
    zb = array([-1], dtype=float64)
    mkev = constants.c ** 2 / constants.eV / 1000
    mb = array([constants.m_e * mkev], dtype=float64)
    scale = array(1e-7, dtype=float64)
    E = array(E * 1000, dtype=float64)
    z_b = array(z_b, dtype=float64)
    m_i = array(m_i / 1000 * mkev, dtype=float64)
    x1 = array(0.0)
    x2 = array(0.0)
    x3 = array(0.0)
    x4 = array(0.0)
    x5 = array(0.0)
    x6 = array(0.0)
    x7 = array(0.0)
    x8 = array(0.0)
    x9 = array(0.0)
    dedx_BPS1(array(0).ctypes.data, scale.ctypes.data, E.ctypes.data,
              z_b.ctypes.data, m_i.ctypes.data,
              Te.ctypes.data, zb.ctypes.data,
              mb.ctypes.data, ne.ctypes.data,
              x1.ctypes.data, x2.ctypes.data, x3.ctypes.data, x4.ctypes.data, x5.ctypes.data, x6.ctypes.data,
              x7.ctypes.data, x8.ctypes.data, x9.ctypes.data)
    return x1 * 10 ** 3

But it is slower than using f2py to wrap without njit:
import numpy as np

import scipy.constants as constants

import BPS

def dedx_BPS(E, T, n, m_i, z_b):  # z_b : Projectile charge, E : Energy in MeV, T : Temperature in keV,
    # n: Electron density in 1/cc, m_i: Projectile mass in g, Output in MeV/mm
    float64 = np.float64
    mkev = constants.c ** 2 / constants.eV / 1000

    return \
        BPS.dedx_bps(nni=int(0), scale=float64(1e-7), ep=float64(E * 1000), zp=float64(z_b),
                     mp=float64(m_i / 1000 * mkev),
                     betab=float64(1 / T), zb=float64(-1), mb=float64(constants.m_e * mkev), nb=float64(n))[0] * 10 ** 3

I tested it like this:

import scipy.constants as constants

import _BPS  # f2py
import __BPS  # ctypes

from time import time

E = 8
m_i = 12 * constants.u * 1000
z_b = 5
T = 0.2
n = 1e21
t = time()
for i in range(1, 1000):
    rpa = _BPS.dedx_BPS(E, T, n, m_i, z_b)
t1 = time()
for i in range(1, 1000):
    cas = __BPS.dedx_BPS(E, T, n, m_i, z_b)
t2 = time()
print(rpa, cas)
print(t1-t)
print(t2-t1)

Output:
3.4902877171282793 3.4902877171282793
4.714770793914795
5.245108366012573

Is there anything I can do to improve speed?

@Mobbybobby Great that you got something working! The above looks approximately as I'd expect it would as it follows the ctypes support. Note that you may need to use a sink function after the call to the f2py function, the purposes of this is to keep the variables used as arguments "alive" (Numba cannot at present work out they are still live so might "delete" them). This would look something like:
@njit
def sink(*args):  # does nothing
  return args[0]

@njit
def foo():
   a = np.array(0.0)
   ... # more allocations for args
   f2py_function_call(a.ctypes.data, ... #more args)
   sink(a, ... # more args)

See also the Numba internal version of this, definition:
https://github.com/numba/numba/blob/4cc738b0cea246bb0cfd9807a8c783be0fa5ddac/numba/np/linalg.py#L826-L829
example use:
https://github.com/numba/numba/blob/4cc738b0cea246bb0cfd9807a8c783be0fa5ddac/numba/np/linalg.py#L865-L866
RE:

Is there anything I can do to improve speed?

I wouldn't have thought so, Numba cannot speed up functions it's not compiling. The performance of the f2py function is largely dependent on the way it was compiled etc. There's also obviously going to be overheads associated with the call in Numba such as allocating temporary arrays for pass-by-reference variables. Were this routine used as part of a larger algorithm, say inside a loop, then these allocations could be hoisted out of the loop and their cost somewhat amoritised.

Thank you. This helped a lot!


Public Analysis Note and Pop-Up Confirmation Window

Add a note to not make test analyses public. Add a confirmation window saying "Do you want to make this analysis public? This will inhibit you from deleting your analysis."

instead of "inhibit" use 'prevent'
On Wed, Jun 13, 2018 at 6:36 AM Antonio Gonzalez<EMAIL_ADDRESS>wrote:

Closed #2565 https://github.com/biocore/qiita/issues/2565 via b326857
https://github.com/biocore/qiita/commit/b3268575388dd8c857f0f2a962248f817c270aa8
.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/biocore/qiita/issues/2565#event-1678737432, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AB69gBrNVlHwnckXy7Ab8WS5ZrnvNaVaks5t8RVsgaJpZM4TaWxB
.

--
Gail Ackermann
Knight Lab
UCSD
<EMAIL_ADDRESS><EMAIL_ADDRESS>


Device based models / information

It would improve the developer experience to have specific models for each device instead of generic ones. Using info['serial_number'] for example could throw a warning via the mypy type checker. I suggest to ban a key if there is no value present.
At this point I have to buy each device to make sure the code that I write is actual working. Wouldn't it be great the API tells me what the device supports.
Having a printed list of each device info in the docs would be a great addition too.

I don't understand what you are asking for, could you be more specific please?

Let me try to explain it with some pseudo code:
from pydantic import BaseModel
from typing import Dict, Tuple, Union, Literal

LightInfoKey = Literal['vendor_id', 'product_id', 'serial_number']
LightInfo = Dict[LightInfoKey, Union[bytes, int, str, Tuple[int, int]]]

class LightDescription(BaseModel, LightInfo):
    light_id: int
    name: str
    info: LightInfo
    is_on: bool
    color: str
    rgb: Tuple[int, int, int]

#this should throw an typing error as path is not defined
#in case path does exist but is empty, I suggest to skip it in LightInfoKey

light.info['path']

How would you use this information?

I don't mean to be obtuse, but isn't that the point of using a library like busylight?  I've already done the work but you are unwilling or unable to use it?  As far the the model you posted, that already exists to some degree in busylight.api.models (but will go away when I move busyserve out of the busylight-for-humans package, which is imminent).
I am still confused about how this information would be made available and how you would use it to "integrate" devices.

I've already done the work but you are unwilling or unable to use it.
That is not the case, I properly use it in a way you never thought of. It's not fair to accuse me in that manner.

Chroma Feedback provides filtering of it's consumer via ARGS.
program.add_argument('--compulab-fit-statusb-light-serial', action = 'append')

Each consumer has something similar to this:
def filter_lights(lights : Any, light_serials : List[str]) -> Any:
	if light_serials:
		for light in copy.copy(lights):
			if light.info['serial_number'] not in light_serials:
				lights.remove(light)
	return lights

Not every device actual contains a info['serial_number'], so I usually fallback to it's .path. Every developer would be forced to own the device to integrate it properly. Like I said, a section in the docs for each device containing all information and properties would help aswell. That way developers can integrate agains a spec.

Perhaps that was unfair, but it motivated you to provide more useful information.
I have never guaranteed the contents of busylight.lights.Light.info, it's the bucket of data I receive from either hid.enumerate() or serial.tools.list_ports() and the only information I regularly consume out of that is vendor_id, product_id, and path. Yes, there are some exceptions to the rule: BlinkStick and Luxafor devices for instance.  Unfortunately, the USB specification does not require vendors to populate all those fields with useful information (or even consistent information) so trying to provide a consistent API to that data is a losing battle.
I suppose I still don't understand the motivation behind the light filtering functions you've shared here and I don't understand yet how your LightDescription would be delivered to the developer other than "docs" and how they would help improve your filter functions.

Not sure what to add to this conversation as you don't understand my intention to have a typesafe info. I close the issue.

Asking questions is usually how I learn things. You have yet to clearly express your actual problem and what I could provide that would fix it. You've come closer with "type safe info" but does that mean a dictionary you can access without fear of a missing key or is this just to satisfy mypy?

It's not to satisfy mypy - it's to prevent potential KeyValue exceptions and know what keys actual return a value without owning the device. Typing does improve the developer experience and can prevent falsy usage.
Example
from typing import Dict, Literal

LightInfoKey = Literal['vendor_id', 'product_id', 'serial_number']
LightInfo = Dict[LightInfoKey, str]

info: LightInfo

print(info['does-not-exist'])

print(info['serial_number'])

IDE

Ok, can you speak to your motivation for digging thru the info dictionary looking for values?  It will be difficult to provide these sorts of assurances since different devices populate different fields without any consistency.  It appears you are looking for unique identifiers for each light ( serial_number and path so far in the examples you've given ). Not all lights have a serial number, in fact most do not. The path is an operating system artifact and device paths generally have a one to one relationship with devices.
I see the value of what you are asking but I'm not convinced that it solves the underlying problem, which you have not expressed.

Could you at least provide dumped output for the light.info dict, light.path string and other unique properties that in the docs?

Again, the question and answer dynamic is how I learn best when I don't understand something. What problem are you trying to solve that you need to use the inconsistent data in the Light.info dictionary property?


Wish: executedBaseQty in create_order response

I can get executed quantity for base asset by order["executedQty"]. I do sum([float(fill["price"]) * float(fill["qty"]) for fill in order["fills"]]) to get quantity for quote asset. And it would be nice if this feature was in the library.

You should see a response field titled "cummulativeQuoteQty" that will negate the need to sum the fills.


Remove PaginatorInterface

Implementations of PaginatorInterface is very different. Some methods need in one implementation, and not need in other implementations. Some methods should named different in different implementations. Seems PaginatorInterface not need.
For example, KeysetPaginator contains methods withNextPageToken(string $token) and withPreviousPageToken(string $token), but in OffsetPaginator instead this methods need one method withCurrentPage(int $page).
Yii Data depended packages:

yiisoft/data-db,
yiisoft/yii-cycle,
yiisoft/app-api,
yiisoft/demo,
yiisoft/yii-dataview.

But PaginatorInterface used in yiisoft/yii-dataview only. In class BaseListView user may set paginator via method paginator(PaginatorInterface $value), but into class code used implementations KeysetPaginator and OffsetPaginator, and pass custom implementation of PaginatorInterface throws error or will be work incorrect, for example, here:
private function renderSummary(): string
{
	if ($this->getPaginator() instanceof KeysetPaginator) {
		return '';
	}

	$pageCount = count($this->getDataReader());

	if ($pageCount <= 0) {
		return '';
	}

	/** @var OffsetPaginator $paginator */
	$paginator = $this->getPaginator();

	// ...

Likely you are correct. There's no common in these two paginators and there could not be a common usage among them.

Decided with team not implement this concept.


Merge branch "sdl2-mouse-additions"

Hey, could you merge the "sdl2-mouse-additions" branch?
I would really like to have the mouse functionality.

Sure, I think it's pretty useful as well. It would be nice if there was also a way to get the "Mouse Delta" rather than just the absolute position, and perhaps that delta could ignore changes caused by SetMousePosition. With just SetMousePosition, you'll have to keep track of that separately.

I merged https://github.com/mellinoe/veldrid/commit/6394869af0477d259922541325357f8b5303e82b, so SetMousePosition is now available.


Were do I place books about semaphores (Operating Systems)

Hello, I'm willing to contributing to the repository adding a book about semaphores, however I didn't find where to place it. May you help me, please?

Hey @raissonsouto, i think you can place the book in books/free-programming-books-subjects.md under operating-systems

Ok, I will place it there, thanks!


feat: Color blend

[x] feat, demo, docs: colorBlend
[x] remove colorOverlap. colorOverlap(color1, color2) is same with colorBlend(color1, color2, 'normal')

any demo snapshot : )
for what color blend is...

updated
https://gw.alipayobjects.com/zos/antfincdn/r0YSYSm2oo/blend.png


Installers refer to old scons commands

The function show_no_tmp_dir_message in common.sh under src/installer mentions a scons command to run to create the installer files, but the command is old.  It should be updated to refer to the new method of creating installer files.

Fixed under PR #232.


Themes

Add error handler
Use proper Django apps as theme

Hey @jmfrenzel this PR drops the support for the "old way" to create themes in RDMO. Does it cause problems with your deployment if the change the rdmo-app which people usually use to get started with RDMO?

Hey @jmfrenzel this PR drops the support for the "old way" to create themes in RDMO. Does it cause problems with your deployment if the change the rdmo-app which people usually use to get started with RDMO?

We will  look into this in the next couple of days


fix(ci): use header for license check

Signed-off-by: wanglei<EMAIL_ADDRESS>What type of PR is this?

[ ] API-change
[ ] BUG
[ ] Improvement
[ ] Documentation
[ ] Feature
[x] Test and CI
[ ] Code Refactoring

Which issue(s) this PR fixes:
Fixes #
What this PR does / why we need it:
Not Available
Special notes for your reviewer:
Not Available
Additional documentation (e.g. design docs, usage docs, etc.):
Not Available

/merge

/merge


A way to view products by category

Gatsby starter that uses tailwind too, makes for good reference.
May also be helpful for the cart issue


Custom bandwidth

Hello! I'm trying to build a multi-room video chat based on your code. I have a problem with video when more than 4-5 users come into the room at one time. I want to try set bandwidth on 250 kbps. Like in that demo. https://webrtc.github.io/samples/src/content/peerconnection/bandwidth/
Can you help me to find a way to do it? Maybe some config, etc...

Hi @litashg, Thanks for your interest in Peer Calls!
This is a tricky problem because all peers in Peer Calls establish a mesh network, which means one user ends up uploading their own video to every other connected user in the room. Based on the example you listed, looks like you'd need to take out the updateBandwidthRestriction function, and then call it from the sdpTransform function of simple-peer. This function needs to be set in the new Peer constructor. Note that the signature of sdpTransform function is (sdp: string) => (string), so you'll need to adapt the original function, for example:
const createSdpTransform = (bandwidth: number) =>
  (sdp: string) => updateBandwidthRestriction(sdp, bandwidth)

A better solution to this problem would be to use a SFU (selective forwarding unit), to which all users would upload their video, and the SFU would distribute it to others as needed. I'm currently working on Peer Calls v4, which is a full rewrite of the server in Go, and it will (hopefully) ship with a built-in SFU.

Hi @jeremija . Thank you for your fast response.
I will try to rewrite the original function, maybe it can help me.
How do you think, do I have any chances to have a nice performance when 10 ppl come into the room if I use mesh network?
Maybe you can advise me on some SFU decisions based on node js? I found only mediasoup but their npm installer is bugged.
In sympathy to you and your work, Hennadii.

Perhaps if you limit the bandwidth you'll have better success. I'd be curious to hear your findings once you try it out.
I've heard about mediasoup, but I've never used it. Then there is kurento media server. Some people using simple-peer mentioned it as a good option. It can serve as an SFU, it has a websocket API, a NodeJS client library on npm, thorough documentation and lots of sample apps in Java and NodeJS, but it's written in C++. The reason why I didn't end up using it is because the client library was still using callbacks.
Then I ran into pion/webrtc, so now I'm using this library to implement my own solution, but it will be written in Golang.

One more question. I saw that when I use Firefox - one client can handle 4-5 streams without rendering errors. I think it because Firefox uses h264 by default. Maybe if I set H264 as default codec - the application can work more stable. Any idea of how to do that experiment?

Are you referring to video render errors, or a bug in application code? You can filter the SDP and only leave the a=rtpmap entries for H264. You'd also need to make sure you remove the filtered out the payload types of removed codecs from related m=video section(s).

I think it`s all about a bug in application code (react rendering errors). I want to ask my friend who familiar with react to help me fix it. Maybe we can check if a stream is rendering correct, else - just reload 'video' tag.
Thanks for the solution. I will try it.

Oh, but this is in your dev code? Or does the same bug happen on peercalls.com as well?

I found this bug on peercalls.com . If more than 3 users in a room more than 15-20 seconds one-two 'video' tags can fall and show only last frame. Maybe it's all because of my mac's CPU is overloaded.

Got it, thanks for sharing. I'll look into it as well.

I can help you to found that bug if you need a help.

Yes, if the user has logged out, the saddle screen remains the last video.

Do you see a message in the top console saying something like "cannot remove a track that was not added"?

I make a screenshot.

4 connects at time. Only 1 'video' tag is active, 2-3-4 falls.

So they stop working after the fourth user connects? Because I just tested this with four devices and I could see all videos, albeit some were a little slow.

Yes. It strange, and I think it's all because my mac can't handle 4 connections at time.

And I can't find why it shows message - 'Connected users : 5'. Why socket event 'users' activates 2 times without new connections.

Are you connected to network via WiFi? If so, your access point could also be the bottleneck. For devices will be sending a total of 4*3 videos to each other. If we say one video is 500Kbit/s - 1Mbit/s, that could be 6 - 12Mbit/s for four users.

The users event will fire on reconnect, but no new connections should be made if peer connections are already active. Weird that it says 5 users if only 4 are connected.

It could be that the disconnect event hasn't happened yet on the server-side and the old socket connection was still included in the users list.

My connection is wifi ~35 Mbps for download and upload.

It's some delay between user close browser and server shot disconnect. I'll look at how to avoid that.

My working branch for v4 (server-go) uses sets or hashmaps with IDs coming from the client-side so this shouldn't happen there. In v3 I'm relying on socket.io for this data, and that library seems to generate a new ID for every new connection.

This is what I was asking about:

This happens on peer connection error.

Hiding the screen in video.tsx when Camera or Sound is turned off?

@ahmetozalp can you clarify? I'm not sure I understand :)

2th screen bug.

stun links: google

I found the problem, the problem is slow, the connection is lost on the internet

Result of reducing bandwidth to 125kbps - 5 different users in one Chrome client window without lags and disconnects on my early 11 macbook pro. Nice result.
But if one of the video clients falls - I need to reload the page. And your fix of removing video tag on user disconnect works perfectly.

can you share it if it succeeds?

Added to PeerAction.ts

const createSdpTransform = (bandwidth: number) =>
  (sdp: string) => updateBandwidthRestriction(sdp, bandwidth)

function updateBandwidthRestriction(sdp: any, bandwidth:any) {
  let modifier = 'AS';
  if (sdp.indexOf('b=' + modifier + ':') === -1) {
    // insert b= after c= line.
    sdp = sdp.replace(/c=IN (.*)\r\n/, 'c=IN $1\r\nb=' + modifier + ':' + bandwidth + '\r\n');
  } else {
    sdp = sdp.replace(new RegExp('b=' + modifier + ':.*\r\n'), 'b=' + modifier + ':' + bandwidth + '\r\n');
  }
  return sdp;
}

And added param to
const peer = new Peer({       initiator: userId === initiator,       config: { iceServers },       sdpTransform: createSdpTransform(125),       // Allow the peer to receive video, even if it's not sending stream:       // https://github.com/feross/simple-peer/issues/95       offerConstraints: {         offerToReceiveAudio: true,         offerToReceiveVideo: true,       },       stream,     })

I don't know react, so I just hardcoded param.

Gospodine Jerko, I need your advice. I found one more WebRTC realization - https://whereby.com/sobakabarabaka (demo room), please, tell me if you know, how do they reload video tag ? If I load 4 users from a low-performance client - video renders slowly, sometimes freeze but it never off.  Can you show me a direction of what to read or what to google?

Are you using Chrome by chance? Can you try commenting out the track.onmute handler here and see if that fixes the issue?

Brilliance! Chat handled 8 connections at a time. Even from the phone, from old mac, from windows tablet or android tablet. I think It can handle more connections but we don't have more devices)) You are the smartest person ever. Thank you!

And no matter what browser I use. Chrome, Opera, Firefox and noname Xiaomi browser.

Haha, thanks for your kind words, and thanks for pointing out this bug. I'm going to add a fix for this shortly.

If you need - I can help you to handle as more bugs as I can find.

That would be great, thanks so much!

@litashg Would you mind testing my fix in 949a09f4 (latest commit on master)?

Yes. Wait a few minutes.
And one more bug - if you click "Join Call" more than one time - it will create few video tags.

Ah, thanks for reporting this!

I tried your fix. Works great. But when a stream is removed - the last frame in video tag zoomed. Than stream reloads and play nice until next remove and frame zoom. I found this only in Chrome. It's really strange when video screen content suddenly jumps in zoom.

I can make video if you need it.

Thanks, a video would be helpful!

https://drive.google.com/open?id=1n5HL6evYLYg1I1gKvPjZ9B0xHP_Zy0q3

@litashg can you give me access

@jeremija @ahmetozalp access granted.

Thanks for sharing! @ahmetozalp, is this the same issue you wrote about above?
@litashg, can you share the steps to reproduce this behavior? Is this on 949a09f ? Is it a poor network connection, or something else?

I just opened 3 browser windows in one channel. My CPU was overloaded and some video streams fall and reload. Yes, it's happening on 949a09f. And the previous fix with removing dispatch works much better. Do you really need to remove track when the CPU cannot render the video stream fast?
dispatch(StreamActions.removeTrack({
        userId,
        stream,
        track,
      }))

Thanks! The onmute is the only event we can listen to see that the remote peer has stopped sharing their video. This is an issue because the users can be sharing two video tracks: webcam video and desktop capture.
Since most browsers have switched to Unified Plan, there is no guarantee that the MediaStreamTrack.onended event will ever fire:

MediaStreamTrack.onended No Longer Fires
Because remote tracks may be muted but are never removed, MediaStreamTrack.onended no longer fires. Instead, rely on MediaStreamTrack.onmute to discover if a track is removed. See code snippet.

Let me try to reproduce this and see if there's anything I can think of...

Is this it? I am not able to reproduce the stretched picture, though.

Also, is it ok if I share screen and people see 2 video streams? One from my camera and second from my screen?

Look like it depends on CPU, I don't see anything strange on your demo.

The video tracks are being muted (removed) and unmuted (added again) in a loop.

Also, is it ok if I share screen and people see 2 video streams? One from my camera and second from my screen?

I would assume so. Other software behaves similarly - you can see both the screen and the speaker.

While the problem is slow video recording from the internet, do a speedtest from a computer with 10megabit or 20megabit internet and you will see the problem in the upload.
My suggestion is to get it reconnected, but how can it be done?

And what if you don't mute the track? It looks like it rendering speed becomes slower.

@ahmetozalp in my opinion - the bottleneck is rendering speed.

While the problem is slow video recording from the internet, do a speedtest from a computer with 10megabit or 20megabit internet and you will see the problem in the upload.

Yes, the main problem with mesh network in this situation is the asymmetric download/upload speeds. The common upload speeds on common internet connections are usually an order of magnitude lower than the download speed.
As @litashg mentioned, the CPU power is also a factor. But when testing locally on the same device, the performance will always be worse than when testing on, say, two devices. In the first case a single device would be doing all the encoding, sending, and decoding, where in the second case the two devices will each do half of the work.

My suggestion is to get it reconnected, but how can it be done?

I do not think a reconnect is needed with the fixes from 949a09f, because the stream will still get to send some data over time, and the track will be unmuted eventually. I'm going to try to make some UI changes and not hide the video container as soon as the video track is muted (and the peer still exists)...

Please test e9e0ab8 (branch track-muted-fix) and let me know if this looks a little better now?

there is nothing altogether changing

What do you mean nothing's changing? The video boxes should no longer be disappearing. What are you testing?

Look better. I don't even see any zooms.

One of the best results. 12 ppl in one group.

Thanks for sharing!! Is this with bandwidth limiting or no?

Limit is 125 kbps. Sometimes video track renders slowly, but nothing falls. Great result I say. Thanks to you.

Thanks for sharing!!! Glad I was able to help and please report any issues you run across.

Thank you! If I found any bug or code some new feature - I will write to you.

@litashg  Hello, do you try to do internet speed test on a different tab during speaking, I still have the same problem

@ahmetozalp Any problems with internet speed. Max for 12 client was 10mbps for receiving and ~1.5 for sending. You should try to test on different devices. Not in one browser.

Hi @litashg, Thanks for your interest in Peer Calls!
This is a tricky problem because all peers in a Peer Calls room establish a mesh network, which means every user ends up uploading their own video to every other connected user. Based on the example you listed, looks like you'd need to take out the updateBandwidthRestriction function, and then call it from the sdpTransform function of simple-peer. This function needs to be set in the new Peer constructor. Note that the signature of sdpTransform function is (sdp: string) => (string), so you'll need to adapt the original function, for example:
const createSdpTransform = (bandwidth: number) =>
  (sdp: string) => updateBandwidthRestriction(sdp, bandwidth)

const peer = new Peer({
  sdpTransform: createSdpTransform(250),
  ...
})

A better solution to this problem would be to use a SFU (selective forwarding unit), to which all users would upload their own videos, and the SFU would distribute it to others as needed. I'm currently working on Peer Calls v4, which is a full rewrite of the server in Go, and it will (hopefully) ship with a built-in SFU.

This works like a charm. Thank you.


Dump statementInfo into local file that the format is parquet

Why are the changes needed?
We need to dump data from mem into file regularly.
This PR is just for local file, the file's format is parquet.
Notice:

There will store lots of small files if we don't use data-lake
Need to discuss how to set partition for this schema
If the schema is changed, how to query the old data

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #873 (0afaa57) into master (6c3b722) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 0afaa57 differs from pull request most recent head bee3653. Consider uploading reports for the commit bee3653 to get more accurate results

@@            Coverage Diff            @@
##             master     #873   +/-   ##
=========================================
  Coverage     78.77%   78.77%
  Complexity       10       10
=========================================
  Files           137      137
  Lines          5187     5187
  Branches        644      644
=========================================
  Hits           4086     4086
  Misses          747      747
  Partials        354      354

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 6c3b722...bee3653. Read the comment docs.


Show details of a resource

User story

As a visitor
I want to see the details of a resource
So that I can understand who suggested and published it

Resource details
Details page should include:

Title
URL
Topic (if available)
Date of suggestion and who suggested it
Date of publication and who published it

Acceptance criteria

Scenario: link to details of published resources

Given: the user is on the homepage
And: there are published resources
When: the user clicks on the resource title
Then: they are taken to a page showing the details of the resource

Scenario: no link to details of draft resources

Given: an admin user is on the Drafts page
And: there are unpublished resources
When: the user clicks on the resource title
Then: nothing happens (title is not a link)

Scenario: navigation to non-existent resource

Given: a user tries to navigate directly to the resource page
And: no resource with the specified ID exists
When: the page loads
Then: they are informed that the resource could not be found

Links

N/A

Pull request for review: https://github.com/CodeYourFuture/tech-products-demo/compare/feature/resource-page?expand=1 (PR description in https://github.com/CodeYourFuture/tech-products-demo/blob/750b251176b5689ff51303b2a69ed3ebb5cc3f18/pull_request.md)


mx.operator.CustomOp AttributeError: 'module' object has no attribute 'CustomOp'

I followed the [instruction] (https://github.com/dmlc/mxnet/blob/master/example/numpy-ops/custom_softmax.py) to define a new layer, but it pops a error: ' 'module' object has no attribute 'CustomOp'', I've no idea how to fix it

You need to pull the most recent code.


install missing packages

timedatectl

awk

cut

rootcertificates are missing

regarding certificates: curl is reporting on trying access a https url:
curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CAPath: none

Everything installed.


Disable integration tests that overlap

Some integration tests overlap, so they've been disabled in order to speed up
the CI builds. The offline and realtime integration tests are covered by the
hybrid integration test, so they've been disabled. The testGeneratedQueries
test has also been disabled, as it is covered by the
testGeneratedQueriesWithMultivalues test. This should save 10-15 minutes per CI
build.

LGTM thanks


Improve aliascheck performance

aliascheck can dominate execution time when turned on.  Let's try and improve that a bit, e.g.:

only fail to serialize JSON once for each model.  after failing once, don't try again.
only fail aliascheck N times for each model.  after failing N times, don't try again.
don't turn on aliascheck by default?
limit the overall percentage of compute time aliascheck may use?

I removed aliascheck in v2.0 and replaced it with Object.freezeing in DEBUG mode.


display settings: Change 24-hour time setting to a dropdown.

Fixes:#12553.

Testing Plan:
UI manual testing, automated tests passed.
GIFs or Screenshots:

@timabbott, @ruchit2801 I closed old PR #12691(think by mistake). In this one i removed all wrong model changes and keep UI changes with dropdown box for time formats. Also addув link to issue in PR description and commit message.

Great.  @YJDave @shubhamdhama @pragatiagrawal31 can one of you review this for doing the real-time sync stuff correctly?

we might want to show "12 hour" as first option,

yeah, agreed

One more thing is that we also have same setting for realms:

good catch! We should also change that one to a dropdown.

@rishig i would like to make timeformat change for realm settings. Could i working in current pull request or must create new one?

Current pull request is good. You can force-push updates or push commits on top. Thanks!

@timabbott, @rishig, @YJDave Ready for review.

@krotovkk we just merged a few things that conflict with this -- can you rebase (and use tools/renumber-migrations to update the database migration)?

Closing in favor of #12907.


Dependencies not compatible with Node LTS

When installing with yarn it appears that an auditjs dependency is not compatible with Node 6.11.0
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=4.3.0 < 5.0.0 || >= 5.10".
error Found incompatible module

The error can be circumvented with --ignore-engines, however, it may be a better idea to test with the latest long term support version and update.

Thanks for the report. I will see what I can do.

Hi. FYI, I have been away and trying to find a new house lately so have not had a chance to work on this (moving 1600km/1000miles). I have not forgotten, and will finally be stationary again starting this weekend. I will hopefully have a better solution for you soon.

Not to worry, I'll have a look too and see if there's anything I can contribute to.

Hi. I finally have a test system up and running, but cannot reproduce the issue. I wonder if one of the downstream modules have been updated. Here are my specifics:
OS: Ubuntu 16.04.2 LTS
node: 6.11.1
npm: 3.10.10
yarn: 0.27.3
What versions are you running on? The command I am running is rather simple, and perhaps does not match your use case:
yarn init
yarn add auditjs

Should there be extra setup (perhaps in the packages.json file for my new module)?


Docs: add excalidraw from video

Just a rough outline from the video, which I thought was super creative.

I just added my original Excalidraw diagram to the code in a docs folder, but thank you for taking the time to recreate your own.


Treat Jupyter's Python 3 Ipykernel alias as a Python 3 kernel.

When retrieving kernels during notebook startup, we use the kernel's display name to retrieve the notebook provider we should use. For our notebook extension we define the python kernel with the display name "Python 3", but Jupyter notebooks can save notebooks with a kernel display name of "Python 3 (ipykernel)". Normally this hasn't been a problem because when we hit an unknown kernel name we fall back to the most recently registered provider, which has historically been our jupyter provider, but when using an additional provider like .NET Interactive this causes notebooks to get a little screwed up underneath. When using an ipykernel notebook with Interactive installed, the kernel display name shows up as Python 3, but the code cells are trying to execute through Interactive, which fails. And even trying to switch the kernel to Interactive at that point appears to fail, because we're already running Interactive underneath so the kernel stays as Python 3. The fix here is to convert the "Python 3 (ipykernel)" display name into "Python 3" during the sanitizeKernelName step, which is the display name we expect for python.
This PR fixes #18894

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 9 (22.22%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.002%) to 42.373%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/services/notebook/browser/models/notebookModel.ts
1
8
12.5%

Totals

Change from base Build<PHONE_NUMBER>:
0.002%

Covered Lines:
27572

Relevant Lines:
60824

💛  - Coveralls

CI failures are unrelated to this change, going ahead with the merge.


Enhancement: like guitar hero and osu if you miss a sustain note it doesn't keep damaging you

Please check for duplicates or similar issues before creating this issue.
What is your suggestion, and why should it be implemented?
like guitar hero and osu if you miss a sustain note it doesn't keep damaging you like nearly version of fnf does
reason why I want this being added in is it'd fit more with how rythm games handle sustain notes

I think in 1.7 (maybe earlier) they changed it to where you get damaged one or two times then the note grays out.


Installation Guide for iPad apps at venues

Via Google Doc:

[x] installing the app via 'add to homescreen'
[x] launching the app in iPad kiosk mode via Guided Access
[x] any other business

accessible via https://tolerantfutures.com/installation


Starting FAQ section

Adding answers about spinnaker-local.yml and slack notification configuration.

Meant to go to main spinnaker repo (not local master)


OM-63 fix cluster size alert

Maybe we would want to review all the alert rules here and the usage of labels? What do you think @hev ?
There is also an alert dashboard that depends on these rules I think.

@spkesan agreed that we should review all alerts. We have that planned. This one has just been bothering me as it fires every time I do testing.


Instructions for using Windows as host

Special Windows-only instructions for cloning the repo and for running dart run arcgis_maps install.

The new plan is to remove symlinks from the samples repo and let dart run arcgis_maps install handle all the symlinks.


app: Web gl warning causing performance reduction

These warnings appear randomly at any time during gameplay. Most probably it appears right after switching scenes. This causes extreme performance reduction. FPS reduce to almost less than half after some time. Fps keep reducing with time.

Sounds like a bug with switching render settings, or some app is not behaving nicely on scene switch.
This needs a consistent reproduction.

Note that scene switching is not supported until the apps inside the scenes are cleaning up after themselves. Does this only happen when switching scenes?

This  is likely tied to a specific object as well, so it would be good to know which object it is.

Invalid query id is related to performance tracking.

This is likely to occur when there are two apps with the same name in the scene, since that is used as a discriminator to check the currently queried app.
I think it would be better to base it on the module that the app loaded. That would probably solve this bug.

See here: https://github.com/webaverse/app/blob/d683c461cbc6eac6318b41cff5e3b83b57cd7c07/performance-tracker.js#L69

I merged a potential fix. Can you test again?

I have tested it again. The issue is not happening with scene switch anymore. But in silkfountains scn, it appears after 1-3 minutes of gameplay.
-It only happens when "H" stats are on.
-Tested in all scenes, but right now it appeared only in silk fountains.
-Unlike before, it happens now only after 1-3 minutes of game play, while h stats are on.

Thanks for the info. This probably means that silk fountains has two instances of apps with the same exact modules being rendered, causing hashes to collide.
We might need a better approach towards tracking uniqueness of apps in this case; perhaps we should tack on the app id.

Closing in favor of #2663


[rps] Experiment with @openzeppelin/test-environment

It claims to be blazing fast https://forum.openzeppelin.com/t/blazing-fast-contracts-testing/1873.
The speedup they claim is impressive but might just be because they were using truffle tests beforehand.
This PR is a work in progress to see if we can get any meaningful speedup or other advantage from migrating to this package.

This tool does similar things and I've found it to work well in the past.

https://github.com/OpenZeppelin/openzeppelin-test-environment/issues/29

Waffle and OpenZeppelin Test Environment seem to have a similar API in terms of how the tests get hold of a Ganache provider. Aside from that, Waffle seems to bundle together a lot of functionality whereas we provide it in separate tools such as our Test Helpers and CLI.


Remove some endpoints

As discussed with @aslakknutsen, these endpoints have been removed:

DELETE /workitems/{id}/relationships/links/{linkId} (delete work-item-relationships-links)
GET /workitems/{id}/relationships/links/{linkId} (show work-item-relationships-links)
PATCH /workitems/{id}/relationships/links/{linkId} (update work-item-relationships-links)

@sanbornsen confirmed, that they are not in use at the moment.

Current coverage is 69.66% (diff: 100%)

Merging #600 into master will decrease coverage by 0.01%

@@             master       #600   diff @@
==========================================
  Files            74         74
  Lines          4285       4263    -22
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           2986       2970    -16
+ Misses         1012       1009     -3
+ Partials        287        284     -3

Powered by Codecov. Last update 2045507...891ca8d


[QUESTION]:PowerStore thin provision may lead to inaccuracy Volume used capacity data in CSM observability

The customer uses CSM observability to monitor PowerStore Volume used capacity they used. They notice that if a volume was temporarily used to a high watermark (such as 90%), then it will always report 90% occupied alerts even the volume capacity has been released for a long time (such as a week ago) .
We think this may be related to PowerStore thin provision function because we can also see the 90% Volume usage alerts in PowerStore Admin GUI.
Hope to know if there are any suggestion to handle this problem as our customer is confused by the inaccuracy Volume used information report from CSM observability.
Many Thanks!!

Repost. Thanks!
The customer uses CSM observability to monitor PowerStore Volume used capacity they used.
They notice that if a volume was temporarily used to a high watermark (such as 90%), then it will always report 90% occupied alerts even the volume capacity has been released for a long time (such as a week ago) .
We think this may be related to PowerStore thin provision function because we can also see the 90% Volume usage alerts in PowerStore Admin GUI.
Hope to know if there are any suggestion to handle this problem as our customer is confused by the inaccuracy Volume used information report from CSM observability.
Many Thanks!!

@forrestxia : Could you please have a look into this request?

We had some investigation on this issue, and we need to engage PowerStore CSI expert to understand the issue in further. @shanmydell @baoy1

@forrestxia, we did some research and found that CSI driver is not involved here, observability directly interacts with storage API's to gather the space/performance data. Platform or Observability team might be able to help here.

We had a discussion with PowerStore team, and the conclusion is the behavior depends on the filesystem and the mount option.
Please check if the volume is mounted with "discard" option.
Refer to storage-class mount option for more info.

Thanks!! We will contact with the customer to check if mount option can help on this problem. Thx!

Hi @jaeliang77 Can we close this ?

Yes. Please help to close this issue . Many Thanks!!

发件人: Akshay Saini @.>
发送时间: 2023年2月14日 15:05
收件人: dell/csm @.>
抄送: jaeliang77 @.>; Mention @.>
主题: Re: [dell/csm] [QUESTION]:PowerStore thin provision may lead to inaccuracy Volume used capacity data in CSM observability (Issue #527)
Hi @jaeliang77https://github.com/jaeliang77 Can we close this ?
―
Reply to this email directly, view it on GitHubhttps://github.com/dell/csm/issues/527#issuecomment-1429230058, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AI6VTXN5YEQA7AYU74P72MLWXMVEFANCNFSM6AAAAAARRWSWCE.
You are receiving this because you were mentioned.Message ID: @.***>


Loading indicator

On my computer/Internet connection it takes a while for the providers to start loading. Could we add some sort of loading indicator?

I've also been thinking about this. It doesn't load quite as slow for me but there is certainly a delay.
I've been trying to wrap my head around if there is a way to use RW cell functionality but pull from the local providers.js file. We could then use a version of the Tailwind animate-pulse as the loader.

I've been trying to wrap my head around if there is a way to use RW cell functionality but pull from the local providers.js file.

I'm pretty sure there isn't 🙁


Priority Queue is Broken

I was testing the PQ recently, and noticed that when the PQ is emptied, the minimum value will now become 0 and will always be zero. This issue is that delete heapList[currentSize]; only sets the value at that index to null (0 in the case of uint256).
Let's say you have a PQ initially with 5 items. Then all items are removed. The length of the list is still 5. So if you call insert on the empty PQ, the item is inserted at index 5, not index 1. When percUp(1) is called, the item is still stuck at the end.
The easy solution to this is to add the line
heapList.length = heapList.length.sub(1);
at the end of delMin() function.

Blockchain @ Berkeley Researcher

@laskdaf Thanks for the detailed report. I submitted PR #105 fixing this issue and added unit tests to cover this case + others.


0.7.2 - Cannot read properties of undefined (reading 'getUtxosCore')

With the last change, I am getting this error after calling switchProvider followed by submitting a transaction. https://github.com/GGAlanSmithee/cardano-lucid-blockfrost-proxy-example can be used as a reproduction. Everything was working fine in 0.7.1 as far as I could tell.

Actually, the error persist after downgrading to 0.7.1 so might be an error on my end. WIll verify and ty to pin point it.

No, sorry again, the issue is only with 0.7.2, I had the version set to ^0.7.1, which 0.7.2 satisfies. Setting the version to 0.7.1 removes the error.

I guess the problem must be with this https://github.com/spacebudz/lucid/blob/main/src/lucid/lucid.ts#L117, but I don't see how exactly.

Yes that's right. I added this line as a safety thing for now. When you switch provider you don't switch the wallet tho.
So for now you have to reselect a wallet until I figure out an elegant solution for wallet.

Hi @alessandrokonrad thanks for your reply.
I see. I tried reverting the change to do what you exaplain; https://github.com/GGAlanSmithee/cardano-lucid-blockfrost-proxy-example/commit/9ef1224a58467ddf7d0dd195d9884d5bc81663d8 but I'm still seeing the same error though.
BTW, what's the reason for the last change?
this.wallet = lucid.wallet;

Wont lucid.wallet always be undefined, as it's a newly created lucid instance?

Wont lucid.wallet always be undefined, as it's a newly created lucid instance?

That's correct. That's what I want to achieve and force you to reselect a wallet. I don't want that someone accidentally builds a tx for mainnet while thinking he is on a testnet.  I forget to await switchProvider.
See https://github.com/GGAlanSmithee/cardano-lucid-blockfrost-proxy-example/commit/3e4d42114637b5151d41eca6f75c27c0f4da61d0


Postgres docker image 9.6.6 fails to start as kubernetes pod

Postgres docker image 9.6.6 fails to start as kubernetes pod
I'm trying to start a kubernetes pod with a Postgres 9.6.6 image but the image fails to start
Here the postgres deplyment
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: jirapg
  name: jirapg
  namespace:
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jirapg
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: jirapg
    spec:
      containers:
      - env:
        - name: POSTGRES_USER
          value: jiradbuser
        - name: POSTGRES_PASSWORD
          value: jiradbuser
        - name: POSTGRES_DB
          value: jiradb
        image: postgres:9.6.6
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - pg_isready
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 3
        name: postgres
        ports:
        - containerPort: 5432
          name: postgres
          protocol: TCP
        readinessProbe:
          exec:
            command:
            - pg_isready
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 2
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /var/lib/postgresql/data
          name: data
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - name: data
        emptyDir: {}
#        persistentVolumeClaim:
#          claimName: jirapg-volume-claim

and here the logs from the kubernetes pod
kubectl logs jirapg-6bdd4454ff-htxjq

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
Success. You can now start the database server using:
    pg_ctl -D /var/lib/postgresql/data -l logfile start
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
waiting for server to start....LOG:  database system was shut down at 2017-12-01 14:22:46 UTC
FATAL:  the database system is starting up
.LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
 done
server started
CREATE DATABASE
CREATE ROLE
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
LOG:  received fast shutdown request
LOG:  aborting any active transactions
waiting for server to shut down....LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down
 done
server stopped
PostgreSQL init process complete; ready for start up.
LOG:  database system was shut down at 2017-12-01 14:22:59 UTC
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
FATAL:  role "root" does not exist
FATAL:  role "root" does not exist
FATAL:  role "root" does not exist
FATAL:  role "root" does not exist
FATAL:  role "root" does not exist
FATAL:  role "root" does not exist

The database looks like it is running fine.  That is the correct response when connecting as root since it does not exist.  The only user that exists is jiradbuser and it is a superuser.

Because the root user does not exist, you can expand your readinessProbe to the following, and it should correct those FATAL errors:
command:

pg_isready
-u
jiradbuser

@qedrakmar @yosifkit
Thanks, so is the readinessProbe responsible for trying to access as root user? Why I get FATAL error?

@qedrakmar Here the correct probe
       readinessProbe:           exec:             command: ["pg_isready", "-U", "$(POSTGRES_USER)", "-d", "$(POSTGRES_DB)"]
Thanks


Simplify Show and Read for TopicName

Would you accept a pull request with simple non-derived instances for show and read that render topics as any other text?

Sure!


Address SAM issue #1733 while keeping functionality of SAM issue #1184

To test:

pull SAM_1733 branch of ssc and patch branches of other repos and build
create PVWatts/Commercial case
Financial parameters page - set straight line depreciation years to 0
select straight line depreciation and run - error as expected
select different depreciation method and run - no error as expected.

See https://github.com/NREL/SAM/issues/1733 for simulation error in current release.

Worked for me when testing. Where else should SKIP_CONSTRAINT_CHECK be applied (question for a different issue/PR)?
I can't replicate the Windows test failure on my build.

SKIP_CONSTRAINT_CHECK should be used anywhere for an optional ssc variable that is required only if some other variable is set to a specific value. The example of SAM issue https://github.com/NREL/SAM/issues/1733 is a perfect example in which the optional "years" value for straight line depreciation is required only if the depreciation selection is 2. Then the "years" input for the user should be checked to be positive (the CONSTRAINT field in the vartable).