deployment-check failing intermittently - "Got a 401 : While connecting to deployment-svc"

Hello,
deployment-checks are frequently failing on my cluster (atleast 3/4 times a day). From the logs new deployments are being created fine and only fails when connecting to deployment-svc.
Kuberhealthy is deployed using helm chart
$ helm list -nkuberhealthy
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
kuberhealthy    kuberhealthy    4               2022-12-14 18:40:27.3898512 +0530 IST   deployed        kuberhealthy-87 v2.7.1

I checked the diff between chart version 87 and latest (90) and cant find any changes that would be relevant.
Any suggestions how to debug this further ? Logs below.
TIA
Logs for failed deployments:
$ k logs deployment-1671194195 -nkuberhealthy
time="2022-12-16T12:36:43Z" level=info msg="Found instance namespace: kuberhealthy"
time="2022-12-16T12:36:43Z" level=info msg="Kuberhealthy is located in the kuberhealthy namespace."
time="2022-12-16T12:36:43Z" level=info msg="Debug logging enabled."
time="2022-12-16T12:36:43Z" level=debug msg="[/app/deployment-check]"
time="2022-12-16T12:36:43Z" level=info msg="Parsed CHECK_IMAGE: local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8"
time="2022-12-16T12:36:43Z" level=info msg="Parsed CHECK_IMAGE_ROLL_TO: local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.9"
time="2022-12-16T12:36:43Z" level=info msg="Found pod namespace: kuberhealthy"
time="2022-12-16T12:36:43Z" level=info msg="Performing check in kuberhealthy namespace."
time="2022-12-16T12:36:43Z" level=info msg="Parsed CHECK_DEPLOYMENT_REPLICAS: 2"
time="2022-12-16T12:36:43Z" level=info msg="Parsed CHECK_SERVICE_ACCOUNT: default"
time="2022-12-16T12:36:43Z" level=info msg="Check time limit set to: 14m46.760673918s"
time="2022-12-16T12:36:43Z" level=info msg="Parsed CHECK_DEPLOYMENT_ROLLING_UPDATE: true"
time="2022-12-16T12:36:43Z" level=info msg="Check deployment image will be rolled from [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8] to [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.9]"
time="2022-12-16T12:36:43Z" level=debug msg="Allowing this check 14m46.760673918s to finish."
time="2022-12-16T12:36:43Z" level=info msg="Kubernetes client created."
time="2022-12-16T12:36:43Z" level=info msg="Waiting for node to become ready before starting check."
time="2022-12-16T12:36:43Z" level=debug msg="Checking if the kuberhealthy endpoint: http://kuberhealthy.kuberhealthy.svc.cluster.local/externalCheckStatus is ready."
time="2022-12-16T12:36:43Z" level=debug msg="http://kuberhealthy.kuberhealthy.svc.cluster.local/externalCheckStatus is ready."
time="2022-12-16T12:36:43Z" level=debug msg="Kuberhealthy endpoint: http://kuberhealthy.kuberhealthy.svc.cluster.local/externalCheckStatus is ready. Proceeding to run check."
time="2022-12-16T12:36:43Z" level=info msg="Starting check."
time="2022-12-16T12:36:43Z" level=info msg="Wiping all found orphaned resources belonging to this check."
time="2022-12-16T12:36:43Z" level=info msg="Attempting to find previously created service(s) belonging to this check."
time="2022-12-16T12:36:43Z" level=debug msg="Found 1 service(s)."
time="2022-12-16T12:36:43Z" level=debug msg="Service: kuberhealthy"
time="2022-12-16T12:36:43Z" level=info msg="Did not find any old service(s) belonging to this check."
time="2022-12-16T12:36:43Z" level=info msg="Attempting to find previously created deployment(s) belonging to this check."
time="2022-12-16T12:36:44Z" level=debug msg="Found 1 deployment(s)"
time="2022-12-16T12:36:44Z" level=debug msg=kuberhealthy
time="2022-12-16T12:36:44Z" level=info msg="Did not find any old deployment(s) belonging to this check."
time="2022-12-16T12:36:44Z" level=info msg="Successfully cleaned up prior check resources."
time="2022-12-16T12:36:44Z" level=info msg="Creating deployment resource with 2 replica(s) in kuberhealthy namespace using image [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8] with environment variables: map[]"
time="2022-12-16T12:36:44Z" level=info msg="Creating container using image [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8] with environment variables: map[]"
time="2022-12-16T12:36:44Z" level=info msg="Created deployment resource."
time="2022-12-16T12:36:44Z" level=info msg="Creating deployment in cluster with name: deployment-deployment"
time="2022-12-16T12:36:44Z" level=info msg="Watching for deployment to exist."
time="2022-12-16T12:36:44Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event ADDED"
time="2022-12-16T12:36:47Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T12:36:48Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T12:36:53Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T12:36:53Z" level=info msg="Deployment is reporting Available with True."
time="2022-12-16T12:36:53Z" level=info msg="Created deployment in kuberhealthy namespace: deployment-deployment"
time="2022-12-16T12:36:53Z" level=info msg="Creating service resource for kuberhealthy namespace."
time="2022-12-16T12:36:53Z" level=info msg="Created service resource."
time="2022-12-16T12:36:53Z" level=info msg="Creating service in cluster with name: deployment-svc"
time="2022-12-16T12:36:53Z" level=info msg="Watching for service to exist."
time="2022-12-16T12:36:53Z" level=debug msg="Received an event watching for service changes: ADDED"
time="2022-12-16T12:36:53Z" level=info msg="Cluster IP found: 10.x.x.xx"
time="2022-12-16T12:36:53Z" level=info msg="Created service in kuberhealthy namespace: deployment-svc"
time="2022-12-16T12:36:53Z" level=debug msg="Retrieving a cluster IP belonging to: deployment-svc"
time="2022-12-16T12:36:53Z" level=info msg="Found service cluster IP address: 10.x.x.xx"
time="2022-12-16T12:36:53Z" level=info msg="Looking for a response from the endpoint."
time="2022-12-16T12:36:53Z" level=debug msg="Setting timeout for backoff loop to: 3m0s"
time="2022-12-16T12:36:53Z" level=info msg="Beginning backoff loop for HTTP GET request."
time="2022-12-16T12:36:53Z" level=debug msg="Making GET to http://10.x.x.xx"
time="2022-12-16T12:36:53Z" level=debug msg="Got a 401"
time="2022-12-16T12:36:53Z" level=info msg="Retrying in 5 seconds."
time="2022-12-16T12:36:58Z" level=error msg="error occurred making request to service in cluster: could not get a response from the given address: http://10.x.x.xx"
time="2022-12-16T12:36:58Z" level=info msg="Cleaning up deployment and service."
time="2022-12-16T12:36:58Z" level=info msg="Attempting to delete service deployment-svc in kuberhealthy namespace."
time="2022-12-16T12:36:58Z" level=debug msg="Checking if service has been deleted."
time="2022-12-16T12:36:58Z" level=debug msg="Delete service and wait has not yet timed out."
time="2022-12-16T12:36:58Z" level=debug msg="Waiting 5 seconds before trying again."
time="2022-12-16T12:37:03Z" level=info msg="Attempting to delete deployment in kuberhealthy namespace."
time="2022-12-16T12:37:03Z" level=debug msg="Checking if deployment has been deleted."
time="2022-12-16T12:37:03Z" level=debug msg="Delete deployment and wait has not yet timed out."
time="2022-12-16T12:37:03Z" level=debug msg="Waiting 5 seconds before trying again."
time="2022-12-16T12:37:08Z" level=info msg="Finished clean up process."
time="2022-12-16T12:37:08Z" level=error msg="Reporting errors to Kuberhealthy: [could not get a response from the given address: http://10.x.x.xx]"

Log for successful deployments:
$ k logs deployment-1671199595 -nkuberhealthy
time="2022-12-16T14:06:43Z" level=info msg="Found instance namespace: kuberhealthy"
time="2022-12-16T14:06:43Z" level=info msg="Kuberhealthy is located in the kuberhealthy namespace."
time="2022-12-16T14:06:43Z" level=info msg="Debug logging enabled."
time="2022-12-16T14:06:43Z" level=debug msg="[/app/deployment-check]"
time="2022-12-16T14:06:43Z" level=info msg="Parsed CHECK_IMAGE: local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8"
time="2022-12-16T14:06:43Z" level=info msg="Parsed CHECK_IMAGE_ROLL_TO: local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.9"
time="2022-12-16T14:06:43Z" level=info msg="Found pod namespace: kuberhealthy"
time="2022-12-16T14:06:43Z" level=info msg="Performing check in kuberhealthy namespace."
time="2022-12-16T14:06:43Z" level=info msg="Parsed CHECK_DEPLOYMENT_REPLICAS: 2"
time="2022-12-16T14:06:43Z" level=info msg="Parsed CHECK_SERVICE_ACCOUNT: default"
time="2022-12-16T14:06:43Z" level=info msg="Check time limit set to: 14m46.65691144s"
time="2022-12-16T14:06:43Z" level=info msg="Parsed CHECK_DEPLOYMENT_ROLLING_UPDATE: true"
time="2022-12-16T14:06:43Z" level=info msg="Check deployment image will be rolled from [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8] to [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.9]"
time="2022-12-16T14:06:43Z" level=debug msg="Allowing this check 14m46.65691144s to finish."
time="2022-12-16T14:06:43Z" level=info msg="Kubernetes client created."
time="2022-12-16T14:06:43Z" level=info msg="Waiting for node to become ready before starting check."
time="2022-12-16T14:06:43Z" level=debug msg="Checking if the kuberhealthy endpoint: http://kuberhealthy.kuberhealthy.svc.cluster.local/externalCheckStatus is ready."
time="2022-12-16T14:06:43Z" level=debug msg="http://kuberhealthy.kuberhealthy.svc.cluster.local/externalCheckStatus is ready."
time="2022-12-16T14:06:43Z" level=debug msg="Kuberhealthy endpoint: http://kuberhealthy.kuberhealthy.svc.cluster.local/externalCheckStatus is ready. Proceeding to run check."
time="2022-12-16T14:06:43Z" level=info msg="Starting check."
time="2022-12-16T14:06:43Z" level=info msg="Wiping all found orphaned resources belonging to this check."
time="2022-12-16T14:06:43Z" level=info msg="Attempting to find previously created service(s) belonging to this check."
time="2022-12-16T14:06:43Z" level=debug msg="Found 1 service(s)."
time="2022-12-16T14:06:43Z" level=debug msg="Service: kuberhealthy"
time="2022-12-16T14:06:43Z" level=info msg="Did not find any old service(s) belonging to this check."
time="2022-12-16T14:06:43Z" level=info msg="Attempting to find previously created deployment(s) belonging to this check."
time="2022-12-16T14:06:44Z" level=debug msg="Found 1 deployment(s)"
time="2022-12-16T14:06:44Z" level=debug msg=kuberhealthy
time="2022-12-16T14:06:44Z" level=info msg="Did not find any old deployment(s) belonging to this check."
time="2022-12-16T14:06:44Z" level=info msg="Successfully cleaned up prior check resources."
time="2022-12-16T14:06:44Z" level=info msg="Creating deployment resource with 2 replica(s) in kuberhealthy namespace using image [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8] with environment variables: map[]"
time="2022-12-16T14:06:44Z" level=info msg="Creating container using image [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.8] with environment variables: map[]"
time="2022-12-16T14:06:44Z" level=info msg="Created deployment resource."
time="2022-12-16T14:06:44Z" level=info msg="Creating deployment in cluster with name: deployment-deployment"
time="2022-12-16T14:06:44Z" level=info msg="Watching for deployment to exist."
time="2022-12-16T14:06:44Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event ADDED"
time="2022-12-16T14:06:47Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:06:47Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:06:52Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:06:52Z" level=info msg="Deployment is reporting Available with True."
time="2022-12-16T14:06:52Z" level=info msg="Created deployment in kuberhealthy namespace: deployment-deployment"
time="2022-12-16T14:06:52Z" level=info msg="Creating service resource for kuberhealthy namespace."
time="2022-12-16T14:06:52Z" level=info msg="Created service resource."
time="2022-12-16T14:06:52Z" level=info msg="Creating service in cluster with name: deployment-svc"
time="2022-12-16T14:06:52Z" level=info msg="Watching for service to exist."
time="2022-12-16T14:06:52Z" level=debug msg="Received an event watching for service changes: ADDED"
time="2022-12-16T14:06:52Z" level=info msg="Cluster IP found: 10.x.x.xx"
time="2022-12-16T14:06:52Z" level=info msg="Created service in kuberhealthy namespace: deployment-svc"
time="2022-12-16T14:06:52Z" level=debug msg="Retrieving a cluster IP belonging to: deployment-svc"
time="2022-12-16T14:06:52Z" level=info msg="Found service cluster IP address: 10.x.x.xx"
time="2022-12-16T14:06:52Z" level=info msg="Looking for a response from the endpoint."
time="2022-12-16T14:06:52Z" level=debug msg="Setting timeout for backoff loop to: 3m0s"
time="2022-12-16T14:06:52Z" level=info msg="Beginning backoff loop for HTTP GET request."
time="2022-12-16T14:06:52Z" level=debug msg="Making GET to http://10.x.x.xx"
time="2022-12-16T14:06:52Z" level=info msg="Successfully made an HTTP request on attempt: 1"
time="2022-12-16T14:06:52Z" level=info msg="Got a 200 with a GET to http://10.x.x.xx"
time="2022-12-16T14:06:52Z" level=info msg="Got a result from GET request backoff: 200 OK"
time="2022-12-16T14:06:52Z" level=info msg="Successfully hit service endpoint."
time="2022-12-16T14:06:52Z" level=info msg="Rolling update option is enabled. Performing roll."
time="2022-12-16T14:06:52Z" level=info msg="Creating deployment resource with 2 replica(s) in kuberhealthy namespace using image [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.9] with environment variables: map[]"
time="2022-12-16T14:06:52Z" level=info msg="Creating container using image [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.9] with environment variables: map[]"
time="2022-12-16T14:06:52Z" level=info msg="Created rolling-update deployment resource."
time="2022-12-16T14:06:52Z" level=info msg="Performing rolling-update on deployment deployment-deployment to [local.imageregistry.com/nginxinc/nginx-unprivileged:1.17.9]"
time="2022-12-16T14:06:53Z" level=debug msg="Watching for deployment rolling-update to complete."
time="2022-12-16T14:06:53Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event ADDED"
time="2022-12-16T14:06:56Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:07:02Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:07:02Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:07:02Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:07:08Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:07:13Z" level=debug msg="Received an event watching for deployment changes: deployment-deployment got event MODIFIED"
time="2022-12-16T14:07:13Z" level=debug msg="Rolling-update is assumed to be completed, sending result to channel."
time="2022-12-16T14:07:13Z" level=info msg="Rolled deployment in kuberhealthy namespace: deployment-deployment"
time="2022-12-16T14:07:13Z" level=info msg="Looking for a response from the endpoint."
time="2022-12-16T14:07:13Z" level=debug msg="Setting timeout for backoff loop to: 3m0s"
time="2022-12-16T14:07:13Z" level=info msg="Beginning backoff loop for HTTP GET request."
time="2022-12-16T14:07:13Z" level=debug msg="Making GET to http://10.x.x.xx"
time="2022-12-16T14:07:13Z" level=info msg="Successfully made an HTTP request on attempt: 1"
time="2022-12-16T14:07:13Z" level=info msg="Got a 200 with a GET to http://10.x.x.xx"
time="2022-12-16T14:07:13Z" level=info msg="Got a result from GET request backoff: 200 OK"
time="2022-12-16T14:07:13Z" level=info msg="Successfully hit service endpoint after rolling-update."
time="2022-12-16T14:07:13Z" level=info msg="Cleaning up deployment and service."
time="2022-12-16T14:07:13Z" level=info msg="Attempting to delete service deployment-svc in kuberhealthy namespace."
time="2022-12-16T14:07:13Z" level=debug msg="Checking if service has been deleted."
time="2022-12-16T14:07:13Z" level=debug msg="Delete service and wait has not yet timed out."
time="2022-12-16T14:07:13Z" level=debug msg="Waiting 5 seconds before trying again."
time="2022-12-16T14:07:18Z" level=info msg="Attempting to delete deployment in kuberhealthy namespace."
time="2022-12-16T14:07:18Z" level=debug msg="Checking if deployment has been deleted."
time="2022-12-16T14:07:18Z" level=debug msg="Delete deployment and wait has not yet timed out."
time="2022-12-16T14:07:18Z" level=debug msg="Waiting 5 seconds before trying again."

I am not sure what's up here, but this isn't a currently known bug, so it might be something very hard to diagnose in your cluster?


Commit message: This is Daniel Shelnut's submission for Simpleview's …

…cms developer assessment. Dated 05/04/2019

This is my pull request for submitting my CMS developer assessment. Please let me know if there are any issues with my request. Thank you again for this opportunity and have a great day!.


Tests fail on 'develop' branch

Checkout (platform OS-X)
Execute make test
Code compiles and test suite is executed
Failure on MemTableTest

==== Test MemTableTest.Simple
key: 'k1d' -> 'v1'
key: 'k2e' -> 'v2'
key: 'k3f' -> 'v3'
key: 'largekeyg' -> 'vlarge'
==== Test TableTest.ApproximateOffsetOfPlain
==== Test TableTest.ApproximateOffsetOfCompressed
Value 3066 is not in range [2000, 3000]
table/table_test.cc:829: Assertion failure Between(c.ApproximateOffsetOf("k03"), 2000, 3000)
make: *** [test] Error 1

I was able to get the testes to pass by increasing the ApproximateOffset value to 3500, and it's subsequent value. I'll create a p/r in a couple of minutes.

Failed on k04 - again, out by 66, 3000 vs 3066 :
==== Test TableTest.ApproximateOffsetOfPlain
==== Test TableTest.ApproximateOffsetOfCompressed
Value 3066 is not in range [2000, 3000]
table/table_test.cc:830: Assertion failure Between(c.ApproximateOffsetOf("k04"), 2000, 3000)
make: *** [test] Error 1

Will bump and try again.

And again - "xyz" - out by 166 - 6000 vs 6166 :
key: 'largekeyg' -> 'vlarge'
==== Test TableTest.ApproximateOffsetOfPlain
==== Test TableTest.ApproximateOffsetOfCompressed
Value 6166 is not in range [4000, 6000]
table/table_test.cc:831: Assertion failure Between(c.ApproximateOffsetOf("xyz"), 4000, 6000)
make: *** [test] Error 1


In day-14/simple-python-app/app.py host is missing | CICD or code deploy or docker container will not able receive request

In day-14/simple-python-app/app.py
For example:
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, world!"

if __name__ == "__main__":
    app.run(port=5000, host="<IP_ADDRESS>")

Now I am able to curl app in ec2 in shell. But unable to access app outside EC2(Public)
any one faced this and fixed the issues.

Issue was with my VPN.


Add support for setting IAM service account

This PR adds a new config option service_account for setting the GCP IAM service account on the GCE instance. I tested it and everything seems to be working. No conflict with the exiting config options service_accounts and scopes. It implements the feature  enhancement requested in #185.
I need some feed back on the below idea ...
I think it is going to be confusing to have a service_accounts and service_account config option. I think what would make most sense would be to get rid of the service_accounts config option. We would end up with a scopes option for setting the API scopes and a service_account option for setting the email address of the IAM service account. This would be a breaking change, so the next version would need to be 3.0.0.
Or maybe instead or service_account we should use service_account_email. Either way my opinion is that we should get rid of the service_accounts config option.
@Temikus, @erjohnso, and @zackangelo what do you think about this?

@seanmalloy Hmmm, ok, now reading it for the second time I think I made a mistake in my review, apologies m(_ _)m I meant changing internal variables. I'd rather do a soft change here to not release a second major release within a month.
I'm thinking:

Add a deprecation warning when service_accounts option is specified
Leave scopesalone
Rename internal variables to service_account_scopes, however, to avoid code confusion.
Add the service_account config option as before

And then I'll chizel out the service_accounts option and leave scopes as they are.
WDYT?
Apologies for my mistake there. If that's too much hassle - I can edit your branch sometime next week myself.

@Temikus thanks for the review and clarifications. I'll make the requested changes. I should be able to get to this in the next few days.

@Temikus I have most of the code updated. I should be able to push up the code changes within the next day.

@Temikus all requested changes have been made.

Thank you! I'll test this in the next 2 days.

Sorry this took a bit longer.
Thanks @seanmalloy! LGTM
@erjohnso - please merge this and the other staging PR


[WIP] Add test case for SSL connections

Refs #13 and #14

Depends on #4 to disable peer verification to support self-signed certificates.
See also #18 as an alternative to this PR that uses trusted/public certificates.

There's no immediate use for this now that #18 has been merged a while ago.
I'll look into reopening a new PR once #4 has been resolved.


[LoopUnroll] Do not pipeline epilog loops generated by loop unrolling

The epilog loop created by the loop unroller may not be run if the main unrolled loop covers all original loop iterations, thus pipelining it non-speculatively may not be beneficial. It can also cause some correctness issue when combined with the downstream PTXAS optimizer.

It can also cause some correctness issue when combined with the downstream PTXAS optimizer.

that's concerning. Do you know why?

It can also cause some correctness issue when combined with the downstream PTXAS optimizer.

that's concerning. Do you know why?

It can also cause some correctness issue when combined with the downstream PTXAS optimizer.

that's concerning. Do you know why?

It can also cause some correctness issue when combined with the downstream PTXAS optimizer.

that's concerning. Do you know why?

Still getting to the bottom. The problem went away with DISABLE_PTXAS_OPT=1.

It can also cause some correctness issue when combined with the downstream PTXAS optimizer.

that's concerning. Do you know why?

Still getting to the bottom. The problem went away with DISABLE_PTXAS_OPT=1.

ah I see, so potentially a ptxas bug :(

It can also cause some correctness issue when combined with the downstream PTXAS optimizer.

that's concerning. Do you know why?

Still getting to the bottom. The problem went away with DISABLE_PTXAS_OPT=1.

ah I see, so potentially a ptxas bug :(

Yeah, I think so. May file a bug to NVIDIA once we are able to provide them a repro. For now I'm disabling the pipelining for epilog loops as it may not be profitable anyways.


Branch <IP_ADDRESS> has more packages than it should

Bug Report
Current branch <IP_ADDRESS> should only be based on AEM 6.5 and SP2 nothing else.

done


Use margin-inline instead

First of all - Thank you! Great project!
For margin, padding, borders etc:
I think it would be better to use margin-inline-start & margin-inline-end [same for padding etc.] instead of adding dir variants.
The advantage of this approach:

Write less code: write only one class that will handle both directions.
Smaller bundle size: no need to generate all the variants...

Yup I considered it, but it leads to worse browser support. The project I wrote this package for needed to support older browsers.


Prepare more than one column chunk

Calling the FPGAPlatform::prepare_column_chunks function twice leads to buffer addresses of the former column being overwritten.
In order to prepare multiple columns, this function could be modified to take a vector of arrow columns as an argument instead.
A dirty example for preparing two Arrow columns:
uint64_t FPGAPlatform::prepare_column_chunks(const std::shared_ptr<arrow::Column>& column0, const std::shared_ptr<arrow::Column>& column1)
{
  uint64_t bytes = 0;

  std::vector<BufConfig> host_bufs;
  std::vector<BufConfig> dest_bufs;

  auto chunks0 = column0->data()->chunks();
  auto chunk0 = chunks0[0];
  std::vector<BufConfig> chunk_config0;
  append_chunk_buffer_config(chunk0->data(), column0->field(), chunk_config0);
  host_bufs.insert(host_bufs.end(), chunk_config0.begin(), chunk_config0.end());

  auto chunks1 = column1->data()->chunks();
  auto chunk1 = chunks1[0];
  std::vector<BufConfig> chunk_config1;
  append_chunk_buffer_config(chunk1->data(), column1->field(), chunk_config1);
  host_bufs.insert(host_bufs.end(), chunk_config1.begin(), chunk_config1.end());

  LOGD("Host side buffers:" << std::endl << ToString(host_bufs));

  bytes += this->organize_buffers(host_bufs, dest_bufs);

  LOGD("Destination buffers: " << std::endl << ToString(dest_bufs));

  size_t nbufs = host_bufs.size();

  this->_argument_offset += nbufs;

  LOGD("Configured " << nbufs << " buffers. " "Argument offset starting at " << this->argument_offset());

  return bytes;
}

Note that this implementation still only supports a single chunk per column.

I think we should actually change the run-time library to not use arrow::Table but to use arrow::RecordBatch for now. They are un-chunked tabular datasets to which Fletcher currently applies more.


Fixes to build suggestions

Docs Build status updates of commit 994f18a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

cordovadocs/2015/build-deploy/app-lifecycle-management.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/get-started-with-ci.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/tfs2015.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-ionic.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md
:bulb:Suggestion

Details

cordovadocs/2017/debug-test/ui-testing-prerequisites.md
:white_check_mark:Succeeded

cordovadocs/2015/build-deploy/app-lifecycle-management.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 356, Column 1: [Suggestion-code-block-indented] Indented code blocks aren't allowed. Use a Markdown code block surrounded by triple backticks (```).

cordovadocs/2015/build-deploy/get-started-with-ci.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/tfs2015.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/getting-started-with-ionic.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 468, Column 161: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/tips-workarounds/configuration-tips?view=toolsforcordova-2017#ThirdParty
Line 472, Column 59: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/tips-workarounds/configuration-tips?view=toolsforcordova-2017#vstac

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 037194d:
:warning: Validation status: warnings

File
Status
Preview URL
Details

cordovadocs/2017/run-your-app/run-app-ios.md
:warning:Warning

Details

cordovadocs/2015/build-deploy/app-lifecycle-management.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/get-started-with-ci.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/tfs2015.md
:bulb:Suggestion

Details

cordovadocs/2015/debug-test/ui-testing-prerequisites.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-ionic.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md
:bulb:Suggestion

Details

cordovadocs/2017/TOC.md
:white_check_mark:Succeeded

cordovadocs/2017/debug-test/ui-testing-prerequisites.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/deploy-and-run-app.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/simulate-in-browser.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/run-app-ios.md

Line 17, Column 5: [Warning-file-not-found] Invalid file link: 'simulate-in-browser.md'.

cordovadocs/2015/build-deploy/app-lifecycle-management.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 356, Column 1: [Suggestion-code-block-indented] Indented code blocks aren't allowed. Use a Markdown code block surrounded by triple backticks (```).

cordovadocs/2015/build-deploy/get-started-with-ci.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/tfs2015.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/debug-test/ui-testing-prerequisites.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 80, Column 156: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/first-steps/build-your-first-app?view=toolsforcordova-2017

cordovadocs/2015/first-steps/getting-started-with-ionic.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 468, Column 161: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/tips-workarounds/configuration-tips?view=toolsforcordova-2017#ThirdParty
Line 472, Column 59: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/tips-workarounds/configuration-tips?view=toolsforcordova-2017#vstac

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 677ca9b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

cordovadocs/2015/first-steps/create-a-hosted-app.md
:warning:Warning

Details

cordovadocs/2017/run-your-app/run-app-ios.md
:warning:Warning

Details

cordovadocs/2015/build-deploy/app-lifecycle-management.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/get-started-with-ci.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/tfs2015.md
:bulb:Suggestion

Details

cordovadocs/2015/change-cordova-version/change-cli-version.md
:bulb:Suggestion

Details

cordovadocs/2015/change-cordova-version/change-node-version.md
:bulb:Suggestion

Details

cordovadocs/2015/debug-test/ui-testing-prerequisites.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/get-started-first-mobile-app.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-ionic.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-onsen2.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/ios-guide.md
:bulb:Suggestion

Details

cordovadocs/2015/samples/cordova-samples.md
:bulb:Suggestion

Details

cordovadocs/2015/take-further/add-azure-mobile-app.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/android-tips.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/windows-tips.md
:bulb:Suggestion

Details

cordovadocs/2015/release-notes/release-update-8.md
:white_check_mark:Succeeded

cordovadocs/2017/TOC.md
:white_check_mark:Succeeded

cordovadocs/2017/debug-test/ui-testing-prerequisites.md
:white_check_mark:Succeeded

cordovadocs/2017/publishing/publish-to-a-store.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/deploy-and-run-app.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/simulate-in-browser.md
:white_check_mark:Succeeded

cordovadocs/2017/tips-workarounds/run-web-app-in-cordova.md
:white_check_mark:Succeeded

cordovadocs/2015/first-steps/create-a-hosted-app.md

Line 461, Column 143: [Warning-hard-coded-locale] Link 'https://docs.microsoft.com/en-us/visualstudio/cross-platform/tools-for-cordova/build-deploy/run-app-android-emulator?view=toolsforcordova-2015&preserve-view=true' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2017/run-your-app/run-app-ios.md

Line 17, Column 5: [Warning-file-not-found] Invalid file link: 'simulate-in-browser.md'.

cordovadocs/2015/build-deploy/app-lifecycle-management.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 356, Column 1: [Suggestion-code-block-indented] Indented code blocks aren't allowed. Use a Markdown code block surrounded by triple backticks (```).

cordovadocs/2015/build-deploy/get-started-with-ci.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/tfs2015.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/change-cordova-version/change-cli-version.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/change-cordova-version/change-node-version.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/debug-test/ui-testing-prerequisites.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/get-started-first-mobile-app.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/getting-started-with-ionic.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 468, Column 161: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/tips-workarounds/configuration-tips?view=toolsforcordova-2017#ThirdParty
Line 472, Column 59: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/tips-workarounds/configuration-tips?view=toolsforcordova-2017#vstac

cordovadocs/2015/first-steps/getting-started-with-onsen2.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/ios-guide.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/samples/cordova-samples.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/take-further/add-azure-mobile-app.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/tips-workarounds/android-tips.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/tips-workarounds/windows-tips.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 501c72b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

cordovadocs/2015/build-deploy/app-lifecycle-management.md
:warning:Warning

Details

cordovadocs/2015/build-deploy/get-started-with-ci.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/tfs2015.md
:bulb:Suggestion

Details

cordovadocs/2015/change-cordova-version/change-cli-version.md
:bulb:Suggestion

Details

cordovadocs/2015/change-cordova-version/change-node-version.md
:bulb:Suggestion

Details

cordovadocs/2015/debug-test/ui-testing-prerequisites.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/create-a-hosted-app.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/get-started-first-mobile-app.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/get-started-with-ionic2.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-ionic.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-onsen2.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/ios-guide.md
:bulb:Suggestion

Details

cordovadocs/2015/samples/cordova-samples.md
:bulb:Suggestion

Details

cordovadocs/2015/take-further/add-azure-mobile-app.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/android-tips.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/windows-tips.md
:bulb:Suggestion

Details

cordovadocs/2015/release-notes/release-update-8.md
:white_check_mark:Succeeded

cordovadocs/2017/TOC.md
:white_check_mark:Succeeded

cordovadocs/2017/debug-test/ui-testing-prerequisites.md
:white_check_mark:Succeeded

cordovadocs/2017/publishing/publish-to-a-store.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/deploy-and-run-app.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/run-app-ios.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/simulate-in-browser.md
:white_check_mark:Succeeded

cordovadocs/2017/tips-workarounds/run-web-app-in-cordova.md
:white_check_mark:Succeeded

cordovadocs/2015/build-deploy/app-lifecycle-management.md

Line 402, Column 35: [Warning-file-not-found] Invalid file link: '../test/unit-test-01-primer.md'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 35a7219:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

cordovadocs/2015/build-deploy/app-lifecycle-management.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/get-started-with-ci.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/tfs2015.md
:bulb:Suggestion

Details

cordovadocs/2015/change-cordova-version/change-cli-version.md
:bulb:Suggestion

Details

cordovadocs/2015/change-cordova-version/change-node-version.md
:bulb:Suggestion

Details

cordovadocs/2015/debug-test/ui-testing-prerequisites.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/create-a-hosted-app.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/get-started-first-mobile-app.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/get-started-with-ionic2.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-ionic.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/getting-started-with-onsen2.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/ios-guide.md
:bulb:Suggestion

Details

cordovadocs/2015/samples/cordova-samples.md
:bulb:Suggestion

Details

cordovadocs/2015/take-further/add-azure-mobile-app.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/android-tips.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md
:bulb:Suggestion

Details

cordovadocs/2015/tips-workarounds/windows-tips.md
:bulb:Suggestion

Details

cordovadocs/2015/release-notes/release-update-8.md
:white_check_mark:Succeeded

cordovadocs/2017/TOC.md
:white_check_mark:Succeeded

cordovadocs/2017/debug-test/ui-testing-prerequisites.md
:white_check_mark:Succeeded

cordovadocs/2017/publishing/publish-to-a-store.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/deploy-and-run-app.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/run-app-ios.md
:white_check_mark:Succeeded

cordovadocs/2017/run-your-app/simulate-in-browser.md
:white_check_mark:Succeeded

cordovadocs/2017/tips-workarounds/run-web-app-in-cordova.md
:white_check_mark:Succeeded

cordovadocs/2015/build-deploy/app-lifecycle-management.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/get-started-with-ci.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/run-app-ripple-simulator.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/build-deploy/tfs2015.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/change-cordova-version/change-cli-version.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/change-cordova-version/change-node-version.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/debug-test/ui-testing-prerequisites.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/create-a-hosted-app.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/get-started-first-mobile-app.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/get-started-with-ionic2.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/getting-started-with-ionic.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/getting-started-with-onsen2.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/first-steps/ios-guide.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/samples/cordova-samples.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/take-further/add-azure-mobile-app.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/tips-workarounds/android-tips.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/tips-workarounds/host-a-mac-in-the-cloud.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

cordovadocs/2015/tips-workarounds/windows-tips.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Interactive food

Create interactive food items with accurate carbon values that will go inside the refrigerator
Beef, poultry, pork, milk, mushrooms...

Interesting carbon info about food -- https://interactive.carbonbrief.org/what-is-the-climate-impact-of-eating-meat-and-dairy/

Needs more research into not just how much emissions come from each thing, but how much of each thing Americans tend to consume in a year and what reasonable replacements are

Started in #20


Update azure-hybrid-benefit-linux.md

Explained a bit more the model to change from BYOS to PAYG as "none" value is not for all the systems and customers are following it.

@mathapli
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Reviewed. Please also change the author to @Dhiraj3030


error opening VDS source file

If I run this bash script:
#!/usr/bin/bash

rm /reg/d/ana01/temp/davidsch/lc2/runA/hdf5/*
bin/daq_writer config.yaml 0 &
bin/daq_writer config.yaml 1 &
bin/daq_writer config.yaml 2 &
sleep 1
bin/daq_master config.yaml 0 &
sleep 1
bin/ana_reader_master config.yaml 0 &
bin/ana_reader_master config.yaml 1 &

which cleans out old files, starts 3 writers, waits a second, starts the master that makes the VDS, waits a second, and then starts two readers, I end up with
HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 0:
  #000: H5F.c line 579 in H5Fopen(): unable to open file
    major: File accessibilty
    minor: Unable to open file
  #001: H5Fint.c line 1168 in H5F_open(): unable to lock the file or initialize file structure
    major: File accessibilty
    minor: Unable to open file
  #002: H5FD.c line 1821 in H5FD_lock(): driver lock request failed
    major: Virtual File Layer
    minor: Can't update object
  #003: H5FDsec2.c line 939 in H5FD_sec2_lock(): unable to flock file, errno = 11, error message = 'Resource temporarily unavailable'
    major: File accessibilty
    minor: Bad file ID accessed
HDF5-DIAG: Error detected in HDF5 (1.10.0-patch1) thread 0:
  #000: H5F.c line 579 in H5Fopen(): unable to open file
    major: File accessibilty
    minor: Unable to open file
  #001: H5Fint.c line 1168 in H5F_open(): unable to lock the file or initialize file structure
    major: File accessibilty
    minor: Unable to open file
  #002: H5FD.c line 1821 in H5FD_lock(): driver lock request failed
    major: Virtual File Layer
    minor: Can't update object
  #003: H5FDsec2.c line 939 in H5FD_sec2_lock(): unable to flock file, errno = 11, error message = 'Resource temporarily unavailable'
    major: File accessibilty
    minor: Bad file ID accessed
terminate called after throwing an instance of 'std::runtime_error'
  what():  ERROR: -1 = H5Fopen(m_master_fname.c_str(), H5F_ACC_RDONLY | H5F_ACC_SWMR_READ, H5P_DEFAULT) line=129  file=app/ana_reader_master.cpp

ana_reader_master: found /reg/d/ana01/temp/davidsch/lc2/runA/hdf5/daq_master-s0000.h5
terminate called after throwing an instance of 'std::runtime_error'
  what():  ERROR: -1 = H5Fopen(m_master_fname.c_str(), H5F_ACC_RDONLY | H5F_ACC_SWMR_READ, H5P_DEFAULT) line=129  file=app/ana_reader_master.cpp

The ana_reader_master app will take a look at a VDS and try to open all the sources to see what the chunk size if for each source. This way it can make a big per dataset chunk - maybe that is where the error is coming from?

I upgraded to hdf 1.10.1-pre1 and I thought this problem went away, but I still get it, like I just got
 cat data/logs/ana_reader_master_0.log
1492038470809 ana_reader_master-s0000: found /reg/d/ana01/temp/davidsch/lc2/runA/hdf5/daq_master-s0000.h5
HDF5-DIAG: Error detected in HDF5 (1.10.1-pre1) thread 0:
  #000: H5F.c line 588 in H5Fopen(): unable to open file
    major: File accessibilty
    minor: Unable to open file
  #001: H5Fint.c line 1307 in H5F_open(): unable to lock the file
    major: File accessibilty
    minor: Unable to open file
  #002: H5FD.c line 1841 in H5FD_lock(): driver lock request failed
    major: Virtual File Layer
    minor: Can't update object
  #003: H5FDsec2.c line 942 in H5FD_sec2_lock(): unable to lock file, errno = 11, error message = 'Resource temporarily unavailable'
    major: File accessibilty
    minor: Bad file ID accessed
terminate called after throwing an instance of 'std::runtime_error'
  what():  ERROR: -1 = H5Fopen(m_master_fname.c_str(), H5F_ACC_RDONLY | H5F_ACC_SWMR_READ, H5P_DEFAULT) line=130  file=app/ana_reader_master.cpp

So, this is the setup

3 daq_writers
** each writes part of a round robin for a cspad
** each owns and writes all of a few 'small' datasets
1 daq_master
** creates one virtual dataset that is a round robin of the three for the cspad in the daq_writers
** creates an external link to each small dataset in the writer files
2 ana_readers
** each reads from the master
** each reads a subset of the events
** each opens all the datasets
*** each master dataset gets opened twice, by two different processes
** when opening, reads chunk size for source dataset to form per dataset chunk cache
*** if source is the VDS, discovers the 3 source files (from the writers) and opens those datasets to get those chunk sizes
*** forms a per dataset chunk cache by big enough for the chunk cache for all three sources

I need to turn off things that the reader does to see what exactly triggers this, maybe I should test back in 1.10 where the problem happened more reliably


[Tooltip] Use label semantics

The Tooltip currently applies label and description semantics (title + aria-describedby) which doesn't seem correct to me. It's apparent if you look at our usage in the docs where we pass title to aria-label.
This PR moves to label only semantics via aria-label for string titles or aria-labelledby for anything else. For non-string titles you'd still need to label the child separately. But this was already the case before.
It also gets rid of the  problematic title attribute.
It's unclear what SEO concerns this should solve.
Opening this for a11y testing and a11y snapshots diff in mui-scrips-incubator. In this form it can't land in v4 anyway. Also needs docs.

Proposed changes in https://github.com/eps1lon/material-ui/pull/476


add "none" to slot analysis/data type

NEON use case / example: id:6f99e199-c6c3-4d79-aac6-57446fde26f4
3 soil samples are collected, then pooled into 1 for the DNA extraction. This pooling means the 3 individual samples are NOT sent for any analysis or data generation
Need a 'none' option so the metadata will validate.
As NMDC expands, and depending on how we capture preparation metadata (like pooling) we might develop a better way to validate the 'no data generated' samples. But for now, this needs to happen to allow for submissions.

I think @bmeluch or @pkalita-lbl can make this change to the enum?
This enum only needs to be update in the submission portal if possible.
The samples with no analysis type are still ingested into the data portal (@aclum confirm?). But there's no workflow generated data.

The samples with no analysis type are still ingested into the data portal (@aclum confirm?)

I think we need a definitive answer here. If samples with anaysis_type = none are to go into Mongo then the none permissible value needs to go into nmdc-schema. If samples with anaysis_type = none are to be dropped by the submission portal-to-Mongo pipeline then it's okay to have the none permissible value only exist in submission-schema.

Related comment, it seems like we largely need this for the submission portal. For data in mongo it is much better to use OmicsProcessing records to see what was actually done instead of looking at analysis_type on class Biosample. I don't believe this is used by the data portal at all so maybe this is a field that should just live in the submission schema.

metadata meeting recommendation is to update the slot to recommended and enforce required via linkml-rules

How does using linkml-rules solve the problem on the submission portal?

The proposal was to make the slot recommended for now so it would show up in DH as a different color. If that isn't an acceptable solution it needs to be discussed again.

The color isn't the problem... the problem is you can't submit unless you have something entered there. I don't want to make this field optional. Then, when there is data, people will leave it blank and we won't have what we needed.
We should discuss again at the metadata meeting.

If there is a real concern about this field being left blank, we should set it as optional for some period of time on one of our portals and assess how extensive the problem would be. Decisions like this shouldn't be made based on intuition alone.
"None" isn't a great answer to "what type of analysis has been or will be performed". One solution would be to use a value of "Not analyzed directly". If we did a trial of making the slot optional like I described above, we could also do a trial with that value and see how often it is used as intended.
Another solution is to add a required analysed_directly slot to the submission schema. Hopefully we could add a rule that says, if  analysed_directly is true, then the analysis type filed must have a value set.

5616 out of the 8158 Biosamples in the production MongoDB have analysis_type  values
{analysis_type:{$exists:true}}

We had a good discussion yesterday about providing other analysis_type permissible values, like biogeochemistry, bulk_chemistry, etc.
I think that's a great solution. If a user wants us to be aware of some sample that isn't a direct input into our current core "omics" analyses, they should at least lets us why we need to be aware of it.

Decision made at metadata meeting on 3-20
Add a new analysis type to the Enum: AnalysisTypeEnum that describes “bulk chemistry” or some other way of describing ‘general non-omic analyses’

Per discussion in https://github.com/microbiomedata/submission-schema/pull/169, this change needs to be made in nmdc-schema first.
See https://github.com/microbiomedata/nmdc-schema/pull/1858

Tested. Looks good and ready for release! I saw no issues.

Closed by updating schema version in https://github.com/microbiomedata/submission-schema/pull/193


TypeError: list indices must be integers or slices, not str

After selecting item 1, an error message appears
Traceback (most recent call last):
  File "telescan.py", line 108, in <module>
    dialogs = app.get_dialogs()['dialogs']
TypeError: list indices must be integers or slices, not str

After selecting item 3, an error message appears
Traceback (most recent call last):
  File "telescan.py", line 133, in <module>
    dialogs = app.get_dialogs()['dialogs']
TypeError: list indices must be integers or slices, not str

Hi @kurtts11
I guess that the lib changed the structure of the data, let me check and I'll update the new code

Quite late
Should work by now

Good,
Selecting option 3 shows the following, the same error that was mentioned above, what could it be?
Traceback (most recent call last):   File "telescan.py", line 133, in <module>     dialogs = app.get_dialogs()['dialogs'] TypeError: list indices must be integers or slices, not str


CRToast/CRToastConfig.h not found with angled include when installing with CocoaPods

Getting compile error when angled include in CRToast.h line: 16 #import <CRToast/CRToastConfig.h>
Changing it to quotes fixes the issue.

How are you installing CRToast? CocoaPods, Carthage, or other?

CocoaPods, sorry forgot to mention it in the ticket.

Could you share the line your Podfile that specifies CRToast, I'm guessing it's something like pod 'CRToast', :head ? Are you using frameworks too?

Yes, it is: pod 'CRToast', :head
It worked this way just last Friday and from yesterday gives compile error.

If you pod install again now does it work, I just pushed a new version with a corrected podspec

It works now, thank you!

This issue is revived from CocoaPod 1.0


add binary, fix #247

cmd.js is mostly taken from node_modules/electron-prebuilt/cli.js (what the node_modules/.bin/electron symlink points to)
I'm not 100% sure what it will do to the package.js though. It might be needed to add some exclude for electron-prebuilt in there.

this can be tested by doing npm install rom1504/webtorrent-app#add_binary and then node_modules/.bin/webtorrent-app

Ah electron-prebuilt is ignored by default by electron-manager so that should be ok https://github.com/electron-userland/electron-packager/issues/13#issuecomment-193634938

Ideally this would actually package the app, not just launch Electron. Because arguments are handled differently in dev vs. production mode. And on OS X, the app will show up as "Electron" in the menu bar, not "WebTorrent" because there's no Info.plist.
Will open an issue for this.


01 - JavaScript Testing

I also faced a similar issue on my site but thankfully I hire a developer which resolve that's issue.


Showing UIAlertView once the user receives a push notification if the ap...

Showing UIAlertView once the user receives a push notification if the app is in the active state, this message will ask the user if he wanna see this notification or he just want to dismiss. He will be forwarded to the notification page if he clicked show

LGTM


⚡ add benchmark for DurationParser from int array

Add a benchmark method to parse Duration not from a string but from a [long?, int?] array.
Result:

less memory allocation
way faster (avoiding string parsing)

| Method     | Param          | Mean         | Error      | StdDev      | Median       | Gen0   | Allocated |
|----------- |--------------- |-------------:|-----------:|------------:|-------------:|-------:|----------:|
| Superpower | 0ns            |   833.434 ns | 18.2249 ns |  48.9601 ns |   817.044 ns | 0.1144 |     720 B |
| Pidgin     | 0ns            |   531.650 ns | 10.2666 ns |  23.3822 ns |   522.662 ns | 0.0505 |     320 B |
| FromArray  | 0ns            |     7.593 ns |  0.2057 ns |   0.2884 ns |     7.512 ns | 0.0127 |      80 B |
| Superpower | 5y4w3h115ms4ns | 3,876.569 ns | 46.0871 ns |  38.4848 ns | 3,882.718 ns | 0.4883 |    3072 B |
| Pidgin     | 5y4w3h115ms4ns | 2,547.831 ns | 47.0114 ns | 108.0166 ns | 2,511.544 ns | 0.0763 |     488 B |
| FromArray  | 5y4w3h115ms4ns |    68.822 ns |  1.4102 ns |   3.1249 ns |    67.865 ns | 0.0612 |     384 B |

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 69.32%. Comparing base (aff390a) to head (ced0725).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #93   +/-   ##
=======================================
  Coverage   69.32%   69.32%
=======================================
  Files         110      110
  Lines        4482     4482
  Branches      438      438
=======================================
  Hits         3107     3107
  Misses       1155     1155
  Partials      220      220

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Multipart form data, file upload and form-urlencoded feature added

I have added new code to parse POST, PUT and DELETE application/x-www-form-urlencoded and multipart/form-data.
I have used cgi, os, html and sys modules to implement this feature.
Text fields will be available in req.form_data dictionary and upload file buffer stream will be available in req.files dictionary.
Below is sample code to show how to use POST, PUT and DELETE application/x-www-form-urlencoded and multipart/form-data:
import falcon

class Resource(object):

    def on_post(self, req, resp):

        # req.form_data will return dictionary of text field names and their values
        print(req.form_data)

        # req.form_data will return dictionary of file field names and
        # their buffer class FileStream objects as values
        print(req.files)

        # support we are uploading a image.jpg in `pancard` file field then
        # req.files["pancard"] will be FileStream buffer object

        # We can use set_max_upload_size method to set maximum allowed
        # file size let say 1Mb = 1*1024*1024 bytes for this file

        req.files["pancard"].set_max_upload_size(1*1024*1024)

        # We can use uploadto method to upload file on required path (Note: absolute filepath is required)
        # This method returns boolean - `True` on successful upload
        # and if upload is unsuccessful then it returns `False` and sets error on failure.
        path = "/tmp/" + req.files["pancard"].name

        response = req.files["pancard"].uploadto("/tmp/" + path)

        print(response)

        # Once file is uploaded sucessfully, we can check it's size
        print(req.files["pancard"].size)

        # If file is not uploaded sucessfully, we can check it's error
        print(req.files["pancard"].error)

        resp.body = "Done file upload"

        resp.status = falcon.HTTP_200

# falcon.API instances are callable WSGI apps
app = falcon.API()

things = Resource()

# things will handle post requests to the '/post_path' URL path
app.add_route('/post_path', things)

Do let me know if you have any doubts.

I think that is wrong way. More pretty handling multipart/form-data (and such as application/x-www-form-urlencoded and application/x-url-encoded) in media handlers, because it's all are media contents (see OpenApi 3 for examples).  For supported handling more various media types - #1312
I like Django implementation of multipart parser because it's more simplest and clean than werkzeug implementation, but for REST api uses need also provide headers of all parts of multipart content because it's required for automatic decoding their contents (decoding json encoded data, xml etc)

@branelmoro what do you think about @DmitriiTrofimov's suggestion re adding a media handler to do this? The object returned by Request.media would presumably include methods to access file data and params. #1311 would provide access to the request stream so that it could be passed in to cgi.FieldStorage().

Pushing this to 2.1

@branelmoro have you had a chance to review @kgriffs and @DmitriiTrofimov suggestions regarding file storage handling, as well as generalizing this as pluggable media handlers?
We are going to close this PR in favour of the clean start building on the said approaches, but many thanks for helping out!
Should we appropriate anything of the work above in the final version of HTML form handling, care will be taken to attribute the work to you by Co-authored-by commits.

is there a ticket to track this "clean start" ?  I am still looking forward to using multipart form data with falcon.

@timc13 yes, https://github.com/falconry/falcon/issues/953 should be the issue.
I will hopefully start on it soon, just working help with the upcoming Falcon 2.0 release first.

@timc13 FWIW the multipart functionality has now hit the Falcon master branch. We are planning to release the first 3.0 alpha soon.
See also:

https://falcon.readthedocs.io/en/latest/api/multipart.html
https://falcon.readthedocs.io/en/latest/user/faq.html#multipart-cloud-upload


Uncaught (in promise) RangeError: Maximum call stack size exceeded - 1.0.0-rc.2

Using the latest version
Testing using the non-minified version of html2canvas and checked any potential issues reported in the console

Bug reports:
Updating to the latest 1.0.0-rc.2 version, DOM elements with a base64 background-image generate a blocking error (the previous 1.0.0-rc.1 didn't) :
Uncaught (in promise) RangeError: Maximum call stack size exceeded
    at Tokenizer.write (html2canvas.js:1019)
    at parse (html2canvas.js:4105)
    at new CSSParsedDeclaration (html2canvas.js:3998)
    at new ElementContainer (html2canvas.js:4138)
    at createContainer (html2canvas.js:4485)
    at parseNodeTree (html2canvas.js:4438)
    at parseTree (html2canvas.js:4490)
    at html2canvas.js:6937
    at step (html2canvas.js:83)
    at Object.next (html2canvas.js:64)

You can test yourself the issue here:
https://open-lab.com/storyboarder/test/test.html
At this page, you can also see that the image has an "object-fit: cover" CSS property that is ignored and that if you scroll the page the capture of the image is white.
Specifications:

html2canvas version tested with: 1.0.0-rc.2
Browser & version: Chrome 74.0.3729.169
Operating system: Mac OSX 10.14.5

@niklasvh : Thank you for the fast support!

Still happening on mobile devices

@marshallino16 Have you solved the problem yet？

My workaround was to stop using the image as a background-image of my div and use it in an img tag.
To get rid of the object-fit CSS property I used two classes : one portrait and one landscape to alternate width or height to 100%.
ex :
.background-image.portrait {
            height: auto;
            width: 100%;
        }

Can we get a fix for this on safari?

for me the issue is resolved by reducing the SLICE_STACK_SIZE from 60000 to 30000 (see https://github.com/niklasvh/html2canvas/blob/master/src/css/syntax/tokenizer.ts#L660).
Maybe @niklasvh could add some technical background regarding SLICE_STACK_SIZE.


Deep nesting causes stackoverflow in windows

I have 266 ninja files and they are quite deeply nested.
I had to remove the try _except block at fake-main to be able to see any error message at all
With VS2012 Express i get the message:
First-chance exception at 0x77810DA9 (ntdll.dll) in ninja.exe: 0xC00000FD: Stack overflow (parameters: 0x00000001, 0x00192FFC).
Unhandled exception at 0x77810DA9 (ntdll.dll) in ninja.exe: 0xC00000FD: Stack overflow (parameters: 0x00000001, 0x00192FFC).
Which happens reproducibly at source line:
util:cc:282
int ReadFile(const string& path, string* contents, string* err) {
FILE* f = fopen(path.c_str(), "r");
I will post more information on this later when i get a change to analyze the depth of the include tree.

@RedX2501 is this still reproducible with Ninja 1.10.0?


XO does not cover the project files when hidden folders is ignored in gitignore

Pre-info
$ node -v
v6.10.2

$ npm -v
4.4.4

$ uname -rio
4.8.0-46-generic x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:        16.04
Codename:       xenial

Steps to reproduce
1. Create folder test
$ mkdir test
$ cd test

2. Interactively create a package.json file
$ npm init

then change test script in package.json to xo:
"scripts": {
  "test": "xo"
},

3. Create index.js file
with content:
const foo = require ('./lib/foo')
module.exports = () => foo

4. Create .gitignore file
with content:
# Hidden folders
.*/

5. Create folder with file lib/foo.js
with content:
const foo = 'bar'
module.exports = () => foo

6. Create hidden folder with file .my/a.js
with content:
// Hidden script.
// Folder .my ignored with this script in .gitignore
// In a hidden folder can be other ignored files in Git
const a = 'a'
module.exports = () => a

Tree
$ tree -a .
.
├── .gitignore
├── index.js
├── lib
│   └── foo.js
├── .my
│   └── a.js
└── package.json

2 directories, 5 files

7. Install XO
$ npm install<EMAIL_ADDRESS>--save-dev

8. Run test
$ npm test

What I get?
> xo

What I expected?
> xo

  lib/foo.js:1:18
  ✖  1:18  Missing semicolon.                                                            semi
  ✖  2:27  Missing semicolon.                                                            semi

  index.js:1:1
  ✖  1:1   Expected empty line after require statement not followed by another require.  import/newline-after-import
  ✖  1:13  Unexpected space between function name and paren.                             func-call-spacing
  ✖  1:34  Missing semicolon.                                                            semi
  ✖  2:27  Missing semicolon.                                                            semi

  6 errors
npm ERR! Test failed.  See above for more details.

Can you try v0.18.2 and see if it's still an issue? We rewrote the gitignore code then.

v0.18.2 is working as expected.


Populate Database

Hey, first of all I tweaked the Dockerfile in order to expose port 3000 and added a second, separate one for the database. I also accomplished to get everything running (the setup is in a different repo). The only step that is missing is populating the database.
I think the db/init-mongo.sh could be extended in a way that it checks whether the database was set up already. jto load the data from a hardcoded file. If one wants to customize that process, she can overwrite this file by running the respecitve docker container with custom mount flags.
Could that work out?

Any progress on this?


Produce the y matrix for ML output

(species, point, year, visit) -> {0, 1}
...possibly needing to resolve ambiguity in "visit."

Frame ML detections as a type-2 observation for occupancy models require making a binary decision based on an aggregation over time and per setting of the occupancy model indexing dimensions (species, point, year, visit).
Since a single-year JAGS model is ready to run, per-year versions indexed by (species, point, visit) are also desirable.
Third in priority is an alternative indexed by (species, point, visit) but where visit comes from the union of visits to that point over all years.
ARU collection time intervals are not identical with point count time intervals. Part of this issue is specifying, given a point count, the set of ML predictions to be aggregated - and the aggregation strategy - that produce an ML binary decision corresponding to that point count.

(species, point, year, visit) -> {0, 1}
...possibly needing to resolve ambiguity in "visit."

Frame ML detections as a type-2 observation for occupancy models require making a binary decision based on an aggregation over time and per setting of the occupancy model indexing dimensions (species, point, year, visit).
Since a single-year JAGS model is ready to run, per-year versions indexed by (species, point, visit) are also desirable.
Third in priority is an alternative indexed by (species, point, visit) but where visit comes from the union of visits to that point over all years.
ARU collection time intervals are not identical with point count time intervals. Part of this issue is specifying, given a point count, the set of ML predictions to be aggregated - and the aggregation strategy - that produce an ML binary decision corresponding to that point count.

Obsolete by PR #40
Binary observations were for the AHM 7.3 model, but we are instead opting for the count-based model of AHM 7.6 as a baseline for us to extend.
PR #40 produced (point, visit, count) records for a fixed species and year and chose "filename" as the scope of aggregation for the count (acoustic visit).
The readML output already has all species and years, and some the alternatives described in the original issue description are mostly down to choice of dplyr species and year filters.


Allow disco in one project to monitor a set of other projects

It seems that disco deployed as a service can only discover resources from that project.
I would prefer to deploy disco in a dedicated project, and then give it read access on the project(s) I want to monitor.
This would allow me to not "pollute" my production projects and to easily uninstall it (by deleting the project)

Disco uses the access granted to the service account under which it runs to discover projects/services. That very use-case you described is supported by granting the SA from one project the necessary rights in the other project.
Created new issue to track this #60

The docs for cross project disco service discovery have been updated.
https://github.com/mchmarny/disco/blob/main/docs/SERVICE.md#deployment
TLDR; granting the disco service account created by the deployment Viewer role on any other project will make the services in that project discoverable to disco.


Video optimization: Change ffmpeg config to 720p@24fps

Context
#7333
Summary
Changes ffmpeg config from 1080p@original to 720p@24fps to match Storytime rec.
Tested this locally with a 4K@60fps video shot on iPhone XS.
Relevant Technical Choices

To-do
N/A
User-facing changes
N/A
Testing Instructions
QA

[ ] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:

Create a video with a large resolution and/or high frame rate and drag it onto the editor
Once video optimization completes, preview the story
Download the optimized video and compare it to the original video (binary size, resolution, and frame rate)
The optimized video should have a max resolution of 720x1280 and a max frame rate of 24fps, and generally a much smaller file size

UAT

[x] UAT should use the same steps as above.

Reviews
Does this PR have a security-related impact?
No
Does this PR change what data or activity we track or use?
No
Does this PR have a legal-related impact?
No
Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[ ] I have verified accessibility to the best of my abilities (docs)
[ ] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[ ] This PR contains automated tests (unit, integration, and/or e2e) to verify the code works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #7333

@choumx Just out interest, there documentation on amp spec on what video quality should be? I believe this has been mentioned a couple of times, but I have never seen the official guide lines.

In my testing, this seems to make the transcoding processes slower for longer videos. Did you notice this in your testing @choumx ?

Just out interest, there documentation on amp spec on what video quality should be?

There's some guidance here: https://amp.dev/documentation/guides-and-tutorials/start/create_successful_stories/#video

In my testing, this seems to make the transcoding processes slower for longer videos.

Tried this on a 100MB 4K@60fps video and I've noticed the opposite. Transcoding to 1080p without frame rate change takes about twice as long (8m vs. 4m) and results in double the file size.

Currently testing.


[Question] Is it possible use Custom-Scrollbar for 2-side pages?

1. Briefly
I can not understand, how I can use Custom-Scrollbar for my 2-side pages. Is it possible? If yes, what I should do?
2. Detail
My test page with Custom-Scrollbar plugin — https://github.com/Kristinita/Kristinita.github.io/blob/master/Sublime-Text/Test3.html.
Structure of my page:
<!DOCTYPE html>

I want to set my custom scroll bar in left side of my page.
And I use media queries:
@media screen and (min-width: 1px)
{
    .sidebar
    {
        display: block;
    }
}
@media screen and (min-width: 960px)
{
    .sidebar
    {
        position: fixed;
        z-index: 200;
        top: 0;

        display: block;

        width: 35%;
        height: 100%;

        background-attachment: scroll;
    }
}

I don't want have scrollbar on mobile devices.

3. Did not help

I don't find in documentation page, how I can move scrollbar to left side.
I don't find in documentation page, how I can disable scrollbar near top image on mobile devices.

Thanks.

See the following FAQ:
http://manos.malihu.gr/jquery-custom-content-scroller/4/#faq-13

You can disable/enable the custom scrollbar on-the-fly by matching your CSS media queries in javascript. For example, assuming your element with the scrollbar is #content-1, you can add the following in your jquery code:

$(window).on("load resize",function(){
	if(window.matchMedia("(min-width: 960px)").matches){
		$("#content-1").mCustomScrollbar();
	}else{
		$("#content-1").mCustomScrollbar("destroy");
	}
});

Thanks, it works for me!
Example page with custom scrollbar — http://kristinita.ru/Sublime-Text/ValeriyaSpeller.


output file

cant find the output file after the process

Error on Run interpolator (step 2)
PROJECT FOLDER /content/RIFEcolab/tempFrames

IndexError                                Traceback (most recent call last)
 in <cell line: 2>()
1 #@title Run interpolator (step 2)
----> 2 performAllSteps(inputFile, interpolatorConfig, encoderConfig, useAutoEncode=autoEncode,autoEncodeBlockSize=autoBlockSize,step1=False,step2=True,step3=False)
1 frames
/content/RIFEcolab/generalInterpolationProceedures.py in runInterpolator(projectFolder, interpolatorConfig, outputFPS)
186     elif mode == 3 or mode == 4:
187         count = 0
--> 188         shutil.copy(origFramesFolder + '/' + files[0], interpFramesFolder + '/' + '{:015d}.png'.format(count))
189         # To ensure no duplicates on the output with the new VFR to CFR algorithm, double the interpolation factor. TODO: Investigate
190         modeModOutputFPS = outputFPS
IndexError: list index out of range

can you explain more clearly?

It works if I pick mode1, but when I pick mode3 or mode4. it will encounter this error

i don't understand

also if it work on method 1 you should use that instead


Difficulty understand itemWidth / slideWidth props

Would be great to get more clarification around the itemWidth and sliderWidth - especially relating to the examples where calculations are made with inclusions of slideWidth, slideHeight and itemHorizontalMargin

Hi! I guess you're referring to the following lines in SliderEntry.style.js:
const slideHeight = viewportHeight * 0.4;
const slideWidth = wp(75);

export const sliderWidth = viewportWidth;
export const itemHorizontalMargin = wp(2);
export const itemWidth = slideWidth + itemHorizontalMargin * 2;

Slider's width and slide's width must be defined at <Carousel /> level (props sliderWidth and itemWidth), while slide's height and slide's inner padding are up to you and should be defined at slide's level.
Anyway, there is a tiny mistake in the code above: itemHorizontalMargin shouldn't be exported since it isn't used anywhere else. Is it clearer if I rewrite those lines this way?
// Slide style
const slideHeight = viewportHeight * 0.4;
const slideWidth = wp(75);
const itemHorizontalMargin = wp(2);

// Carousel props
export const sliderWidth = viewportWidth;
export const itemWidth = slideWidth + itemHorizontalMargin * 2;

Here is a screenshot that should help you understand how each of these variables is used. Let me know if you need more info.

hey @bd-arc thanks for replying so quickly.
I understand the basics of what the props are doing. However I have this issue where after I slide each 'slide', each successive slide snaps further to the left side of the carousel.
i.e. slide 1 is 20px from edge of screen.....slide to snaps to 10px from edge of screen.....slide 3 snaps to 0px from edge of screen....slide 4, 5 and so on snap further off the screen as I move through the list.

@vTrip Do not hesitate to share your code so that I can take a look at it ;)

const slides = this.props.results[index].value.map((rowData, rowID) => this.renderCard(index, rowID, rowData) );
return (         <Carousel           sliderWidth={sliderWidth}           itemWidth={itemWidth}         >           { slides }         </Carousel>       )
renderCard(section, row, data) {     return (       <FlightCard         key={entry-${row}}         lookup={false}         index={row}         selected={selected}         detail={ () => this.setState({modalVisible: true, detailItem: data}) }         select={ () => this.props.select(section, row) }         unselect={ () => this.props.unselect(section) }         flightSection={data} />     )   }

@bd-arc for props:
sliderWidth & itemWidth I use 350 and 300 respectively.
As i scroll through the list, the offset of each card increases from the left. Leaving each successive card with a larger left margin than the previous card.

Hi @vTrip,
Sorry for the late answer, but I finally had time to work on your issue.
Good news: I was able to reproduce and fix it. I'll publish a new release in the next few days ;-)

@bd-arc awesome news - looking forward to the fix !!

@vTrip I've just published version 2.2.0 that should solve your issue. Can you confirm that it now works as intended for you?

Hi I still have the same problem but only when I try to add horizontal margin between slides. Sliding through the elements shifts their position to the right each time.
I'm on Android and using the latest version of your plugin (2.3.1).
I tried to follow  your example :
    const Screen = Dimensions.get('window');
    function wp (percentage) {
      const value = (percentage * Screen.width) / 100;
      return Math.round(value);
    }

    let slideWidth = wp(75);
    let itemHorizontalMargin = wp(2);

    export const sliderWidth = Screen.width ;
    export const itemWidth = slideWidth + itemHorizontalMargin * 2;

Hi @emileNetter,
Does it work if you try the example itself? Is it possible that your carousel is wrapped in a container with margin or padding?

Hi, I finally got it working. I guess I simply did react-native run-android and it worked as expected. Thank you for your time and great work by the way !

hi @bd-arc,
Great screenshot there displaying the sliderWidth and the explanation.
I am trying to achieve the similar padding spacing between the slides like in example 1 but only difference is I would like the inactiveSlideScale={1} . Tried adjusting the slideStyle with paddingHorizontal but it pushes the all the slides to the right causing them to be not centered.
Any clarification regarding the padding and the scaling would be great.
Thanks in advance!

Hi @sooyang,
Typically, this means that you've updated slide's styles without adding your padding to itemWidth. Am I right? Note that the value of itemWidth must include any extra padding. Typically, it's going to be equal to custom slide width + (extra padding * 2), and is not affected by the value of inactiveSlideScale.
You can also take a look at this part of the doc.

Hi @bd-arc,
Spot on!
I have read the doc before reaching out. Somehow I misunderstood the explanation on adding paddingHorizontal in the docs. Your explanation really clear things up for me. Thanks so much !
Made 2 mistakes:
i) Updating the slide's style by adding paddingHorizontal but did not account the additional padding to itemWidth
ii) Added additional paddingHorizontal to the slides's container on top of the slide's styles paddingHorizontal
Just going to add an example here on what I was looking to achieve by re-using part of the code in the docs.
const horizontalMargin = 20;
const slideWidth = 280;

const sliderWidth = Dimensions.get('window').width;
const itemWidth = slideWidth + horizontalMargin * 2;
const itemHeight = 200;

export class MyCarousel extends Component {
    _renderItem ({item, index}) {
        return (
          <View style={{width: (slideWidth + 10 * 2), height: itemHeight, backgroundColor: 'white'}} />
        );
    }

    render () {
        return (
            <Carousel
              data={this.state.entries}
              renderItem={this._renderItem}
              sliderWidth={sliderWidth}
              itemWidth={itemWidth}
              inactiveSlideScale={1}
              slideStyle={{paddingHorizontal: 10}}
            />
        );
    }
}

In this scenario, I am going for inactiveSlideScale={1} so that the inactive slides have similar height as the active slide and I am going to add paddingHorizontal: 10 because thats the amount of spacing  between the slides that I would like to have. After adding paddingHorizontal to the slide's style, I then have to adjust my itemWidth accordingly which can be seen at width: (slideWidth + (horizontalMargin - 10) * 2)

Thanks @sooyang for the detailed example that will certainly help others.
And you're right: the doc was missing a note clarifying that itemWidth needs to include the extra padding. I'll make sure to update it!


Suggestion: Switch off screens for energy saving

It will be nice to have the possibility of switch off screens and not consume energy.
Switch on , and off with redstone signal or by touching the screen.

I'd like to suggest a slight alteration to this suggestion (so meta! ^^) - make the screen controllers adjustably redstone-sensitive, in the way many other blocks from the mod already are (Builder, Shield Generator, Environment Conroller, etc.). I'm not sure why that's not already a thing - I mean, being able to switch screens on and off would make perfect sense. Right now the only alternative is to use a combination of screen controller, relay and RF monitor in order to keep the controller almost completely drained, so that when needed, power-hungry screens would quickly finish the rest and turn themselves on. But this feels kinda... stretchy. And it doesn't work with power-free screens, such as buttons and elevators, and being able to toggle those would be a nice decorative touch.


Add sponsored search results and Pandas DataFrame conversion

Summary
This PR adds two new features to the library, as suggested in Issue #11:

Sponsored search results: The search function now accepts a sponsored boolean flag to fetch sponsored search results.
Pandas DataFrame Conversion: Introduced a to_df function to convert search results into a Pandas DataFrame.

Changes

Modified SearchResult class to include an is_sponsored attribute.
Updated the search function to accommodate the sponsored flag.
Added a to_df function to convert search results to a Pandas DataFrame.
Updated README to reflect these changes.

How to Test

Perform a search with the sponsored=True flag.
Convert the search results to a Pandas DataFrame using the to_df function.

Issue Link
Closes #11

Looks good, have you tested this? Thanks for the PR!
Yes.


use xml stream feature

I needed to send data from my db to Google Merchant Center. So I used you lib to transform my JSON to rxx format but I needed to stream it because of the data quantity. So as node-xml allows to stream the conversion, I added this.

+1 on getting this merged


Automatic determination of tree tensor network structures

Here are some references:

Measuring orbital interaction using quantum information theory (https://arxiv.org/abs/cond-mat/0508524)
Simulating Strongly Correlated Quantum Systems with Tree Tensor Networks (https://arxiv.org/abs/1006.3095)
Efficient Tree Tensor Network States (TTNS) for Quantum Chemistry: Generalizations of the Density Matrix Renormalization Group Algorithm (https://arxiv.org/abs/1302.2298)
Tensor product methods and entanglement optimization for ab initio quantum chemistry (https://arxiv.org/abs/1412.5829)
Tree Tensor Network State with Variable Tensor Order: An Efficient Multireference Method for Strongly Correlated Systems (https://pubs.acs.org/doi/10.1021/ct501187j)
Simulating quantum circuits using tree tensor networks (https://arxiv.org/abs/2206.01000)
Automatic structural optimization of tree tensor networks (https://arxiv.org/abs/2209.03196)
Entanglement bipartitioning and tree tensor networks (https://arxiv.org/abs/2210.11741)
Visualization of Entanglement Geometry by Structural Optimization of Tree Tensor Network (https://arxiv.org/abs/2401.16000)

@JoeyT1994

Thanks! These will be useful


Publish types-registry to npm AND github package registry

Publish types-registry to @definitelytyped/types-registry before publishing to types-registry.
Note that, for testing purposes, the time-limit per publish is 10 minutes instead of 1 week. I'll change that after this PR is merged and I have verified that it works.
You can see the results of my local testing at; 0.1.456 was published from my machine using the below PR. 0.1.450 is a manual publish from @andrewbranch when we first tested the gihub package registry.

Hide whitespace helps a lot with this review since I moved a whole block of code into a function in order to call it twice.


Added example java Application with steps to connect to Amazon Keyspa…

…ces from Amazon EKS using SigV4 Authentication
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

SigV4 EKS Keyspaces V1


Installation page updated as should

Installation page was not well redirected last time fixed

Codecov Report

Merging #741 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #741   +/-   ##
=======================================
  Coverage   88.54%   88.54%
=======================================
  Files          99       99
  Lines        9949     9949
  Branches     2010     2010
=======================================
  Hits         8809     8809
  Misses        892      892
  Partials      248      248

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 bdd646e...84f1444. Read the comment docs.


chore: remove ftl db

[ ] Need to check to make sure nothing is deleted that affects module db migrations
[ ] Blocked on https://github.com/TBD54566975/ftl/pull/3712

Glorious!


WIP: Save and Recover Project Information

moving PR #247 to this repo to collaborate on it.

@CheukHinHoJerry  --  ready to continue on this. I was in a rush didn't manage to fully resolve the conflicts on save_potential - please take a look.

No problem. Thanks for moving this.

I will add test for recovering the manifest and project after dinner.

Are those changes in the Project.toml intended?

What changes?

This PR is ready for review.

thank you, Jerry!


Fix null options error

There is an error when you pass null as options.
In meteor the first param of Package.twitter.Twitter.requestCredential must be an object. If you make:
Meteor.linkWithTwitter((err) => {
 console.log(err);
});

Meteor.linkWithTwitter();

It will fail on this line https://github.com/meteor/meteor/blob/devel/packages/twitter/twitter_client.js#L42 because options is null.

Since It's have been resolved on meteor code I close the pull


Add Barcode creater/QRCode creater

It can be added into BarcodeScanner instead of creating a new component type

@ColinTree I'm not opposed to this, but I would like to see a design doc (plus reference blocks) and use case to demonstrate how it might be used in an app.

He probably means a QR code generator, which should be pretty easy to integrate as ZXing library already contains required classes. It has a lot of use cases.

Thanks @moliata that is what I mean. A QR code generator


Unable to run update behind a proxy

The AppImageUpdate does not work behind a proxy even if if has been specified using the one of the
following the environment variables (or their uppercase variants):
http_proxy
https_proxy
no_proxy

@probonopd I'm not willing to patch around in that dependency... it's an annoying one anyway, the whole core (libappimageupdate, that is) requires a rewrite, including all the legacy stuff we recycled from zsync. If I just had 3-5 days...


fix(machine): set creationdate

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