Sorry, something went wrong...

Expected Behavior
Bot sending messages back and forth between services
Actual Behavior
Bot still running, picking up messages from (other) discord channels. No messages being sent between discord or messenger
Steps to Reproduce the Problem

UnhandledPromiseRejectionWarning

Specifications

Platform: Ubuntu 16.04.4 LTS
Version (miscord -v): PR #140
Node.js version (node -v): v8.10.0

I have attached the silly log from where the last message was sent to when I discovered the error. If you need more parts of the log let me know. Maybe the log should also contain timestamps?
log_last_part.log
An image of the "raidchat trondheim discord" group is shown below. The message "Folk trenger den før å løse oppgaver mot å få Mew" was sent at 10:12 and is also shown in discord. The "aa isee" was sent at 10:13, but did not get sent to discord. No future messages from either service went through.

EDIT: The smiley emoji from "Kim" went through to discord, while the message inbetween did not. The discord message was edited to append the emoji. See:

Currently using this as a workaround: Resetting my box at midnight using crontab. If anyone is having the same issues and you are running in a linux environment you can alleviate it by following these steps:
Open the crontab file:
crontab -e (Make sure you have permissions)
You may be prompted to select a text editor, just select nano
Add this to the end of the file:
0 0 * * * reboot (Reboot at minute 0 of hour 0 of any day of any month)
Save with ctrl+x followed by y and enter
You dont need to restart, but I would reccomend it to make sure the cron has updated.

You don't have to reboot the whole box, only Miscord

I have nothing else running and I have miscord running at boot with forever, so for my case it works just fine


Fix container name lookup & pod_name

What does this PR do?

remove the namespace from the pod_name tag in the docker, kubernetes check
fix formatting
stop reporting cadvisor metrics about non-container objects.

Versioning

[x] Bumped the version check in manifest.json
[x] Updated CHANGELOG.md. Please use Unreleased as the date in the title
for the new section.

Additional Notes
tied to https://github.com/DataDog/dd-agent/pull/3532

travis failure is unrelated (dns check), merging


Update stack resolver and lens upper bound

Fixes https://github.com/commercialhaskell/stackage/issues/5911

@locallycompact pushed <IP_ADDRESS> with these bounds changes. thanks!


Resolves #977: Correct callable args on splice

This PR fails "make xtest".
# Failed test 'doc/Type/Array.pod6 (line 169): Must not have any trailing whitespace.'

Thanks a lot!
(I'll fix the xtest issue manually from a local checkout)


(PUP-7186) Switch AIX nim test to a simpler test fixture

The AIX nim provider tests previously relied on a real package. This package did not install cleanly on AIX 7.2. This updates the nim test to use a new test fixture created internally, which allows the test to function on all AIX versions.

@branan would you mind linking output of a passing run of this updated test on AIX 7.2?

@moses The updated test run against all 4 AIX versions https://gist.github.com/branan/db489f0fa3b159a4c8eec3f8078325e6


Interpolate/project not snapping point to line, messing up split

Problem, expected results and steps to reproduce it
I'm trying to snap a point to a line following the following steps:
point = Point((20.616, 16.275))
line = LineString(((20.21, 17.53), (20.97, 15.18)))

nearest_point = line.interpolate(line.project(point))

But when I calculate the distance between nearest_point and line, I get 3.15e-16 instead of 0:
>> line.distance(nearest_point)
3.146587351369935e-16

This looks like a small number but it's enough for split not to do its job when trying to split line on the nearest_point:
>> split(line, nearest_point)
GEOMETRYCOLLECTION (LINESTRING (20.21 17.53, 20.97 15.18)) # original LineString rather than two split ones.

How should I split line at point?
Operating system
NAME="Red Hat Enterprise Linux Server"
VERSION="7.9 (Maipo)"
Shapely version and provenance
Shapely 2.0.1 installed with conda

See #1781

We should add some better documentation about this that we can generally point to (or some gotchas or FAQ section)

There's a workaround along the lines of shapely.ops.substring(line, 0, line.project(point)). This only gets the first line. You can get the other side in a similar way.


Breaking changes for 3.0.0?

What are the breaking changes that caused the bump to 3.0.0? I don't see release notes or a change log that makes that clear. It wasn't immediately clear by looking through the commit history.

The call to make it v3 was here: https://github.com/thlorenz/proxyquireify/pull/39#discussion_r35038735
#39 is in some ways a bug fix. Immediately executing every file you pass to proxyquireify as was happening prior to 3.0 is clearly wrong. But with a test utility it can't hurt to be conservative with versioning.


Ecto: preloads not linked to parent span

By default, Ecto executes preloads (if there are more than one) in parallel, e.g.,
Repo.all(from(Demo.Post, preload: [:authors, :comments]))

or
Repo.all(Demo.Post)
|> Repo.preload([:authors, :comments])

This will result in the two queries for authors and comments not to be linked to the parent span.
Solution
It would be nice if the preload spans were a child of the parent span (the query for Demo.Post in the above example) or that they are created with a link to this parent span (similar to how it's done with Oban jobs in #6).
Alternatives
One workaround for this is passing in_parallel: false to Repo.all or Repo.preload, but this might impact the performance.
Additional context
Previously reported in https://github.com/opentelemetry-beam/opentelemetry_ecto/issues/15

The generic approach has a couple of challenges in that:

You may not want a span in that task, just continue the currently active span
Linking is not supported in most tooling, so you'd end up with even less insight as that span won't even be affiliated with that trace in UIs.

I think the solution you proposed makes sense as something for this particular library. Tristan and I discussed this as a generic thing about a month ago and settled on creating a utility to make the searching generic. I think I have it started (pretty simple) but I didn't have time to finish. I'll see if I can get that up soon.


Unexpected MIP warnings

Description
When MIP is used to produce a penalty model, the following warning gets printed
WARNING: Logging before InitGoogleLogging() is written to STDERR
E0418 22:18:55.691249   204 linear_solver.cc:1387] No solution exists. MPSolverInterface::result_status_ = MPSOLVER_INFEASIBLE
E0418 22:18:55.691913   204 linear_solver.cc:1387] No solution exists. MPSolverInterface::result_status_ = MPSOLVER_INFEASIBLE
E0418 22:18:55.691923   204 linear_solver.cc:1387] No solution exists. MPSolverInterface::result_status_ = MPSOLVER_INFEASIBLE
E0418 22:18:55.691928   204 linear_solver.cc:1387] No solution exists. MPSolverInterface::result_status_ = MPSOLVER_INFEASIBLE
E0418 22:18:55.691936   204 linear_solver.cc:1387] No solution exists. MPSolverInterface::result_status_ = MPSOLVER_INFEASIBLE
..

The code still finishes as usual, but the warning is unexpected. I suspect the warning is due to the following constraint in MIP
gap = solver.NumVar(min_classical_gap, solver.infinity(), 'classical_gap')

Previously, the lowerbound on gap was merely 0.
To Reproduce
nodes = ['a', 'b']
states = {(-1, -1): 0,
          (-1, 1): 0,
          (1, -1): 0}
graph = nx.complete_graph(nodes)

with self.assertRaises(pm.ImpossiblePenaltyModel):
    large_min_gap = 5
    mip.generate_bqm(graph, states, nodes, min_classical_gap=large_min_gap)

The gap constraint with the min_classical_gap lower-bound is more difficult to satisfy than 0. Hence, it results to more infeasible models. PR #93 addresses this by finding infeasible models and ending the code earlier on.


Priorities for the evaluator configs

Priorities allow to set sequence of execution for blocks of concurrent evaluators within phases of the Auth Pipeline.
Evaluators of same priority execute concurrently to each other "in a block". After syncing that block (i.e. after all evaluators of the block have returned), the next block of evaluator configs of consecutive priority is triggered.
Use cases for priorities are:

Saving expensive tasks to be triggered when there's a high chance of returning immediately after finishing executing a less expensive one – e.g.

an identity config that calls an external IdP to verify a token that is rarely used, compared to verifying JWTs preferred by most users of the service;
an authorization policy that performs some quick checks first, such as verifying allowed paths, and only if it passes, moves to the evaluation of a more expensive policy.

Establishing dependencies between evaluators - e.g.

an external metadata request that needs to wait until a previous metadata responds first (in order to use data from the response)

Closes #184

Example:
apiVersion: authorino.3scale.net/v1beta1
kind: AuthConfig
metadata:
  name: talker-api-protection
spec:
  hosts:
    - talker-api
  identity:
    - name: tier-1
      priority: 0
      apiKey:
        labelSelectors:
          tier: "1"
    - name: tier-2
      priority: 1
      apiKey:
        labelSelectors:
          tier: "2"
    - name: tier-3
      priority: 1
      apiKey:
        labelSelectors:
          tier: "3"
  metadata:
    - name: first
      http:
        endpoint: http://talker-api:3000
        method: GET
    - name: second
      priority: 1
      http:
        endpoint: http://talker-api:3000/first_uuid={auth.metadata.first.uuid}
        method: GET
  authorization:
    - name: allowed-endpoints
      json:
        conditions:
          - selector: context.request.http.path
            operator: neq
            value: /hi
          - selector: context.request.http.path
            operator: neq
            value: /hello
          - selector: context.request.http.path
            operator: neq
            value: /aloha
          - selector: context.request.http.path
            operator: neq
            value: /ciao
        rules:
          - selector: deny
            operator: eq
            value: "true"
    - name: more-expensive-policy # no point in evaluating this one if it's not an allowed endpoint
      priority: 1
      opa:
        inlineRego: |
          allow { true }
  response:
    - name: x-auth-data
      json:
        properties:
          - name: tier
            valueFrom:
              authJSON: auth.identity.metadata.labels.tier
          - name: first-uuid
            valueFrom:
              authJSON: auth.metadata.first.uuid
          - name: second-uuid
            valueFrom:
              authJSON: auth.metadata.second.uuid
          - name: second-path
            valueFrom:
              authJSON: auth.metadata.second.path

Identity configs tier-2 and tier-3 (priority 1) will only trigger (concurrently) in case tier-1 (priority 0) fails to validate the authentication token first. (The implementation is without perjudice of context canceling between concurrent evaluators – i.e. evaluators that are triggered concurrently to another, such as tier-2 and tier-3, continue to cancel the context shared between them if any succeeds validating the token first.)
Metadata source second (priority 1) uses the response of the request issued by metadata source first (priority 0), so it will wait for first to finish by triggering only in the second block.
Authorization policy allowed-endpoints (piority 0) is considered to be a lot less expensive than more-expensive-policy (priority 1) and has a high chance of denying access to the protected service (if the path is not one of the allowed endpoints). By setting different priorities to these policies we ensure the more expensive policy if triggered in sequence of the less expensive one, instead of concurrently.

TODOs

[x] Extend the API with a spec.(identity|metadata|authorization|response).priority: integer field
[x] Refactor AuthPipeline.GetDataForAuthorization() and AuthPipeline.GetPostAuthorizationData() merging these functions into one AuthPipeline.GetAuthorizationJSON() => { context, auth: { identity, metadata, authorization, response } } - so priorities make sense for the response phase as well
[x] Tests
[x] Docs

My recipe to test this branch:
make local-setup AUTHORINO_DEPLOYMENT=cluster-wide
kubectl -n authorino set env deployment/authorino-controller-manager LOG_LEVEL=debug -c manager

# test priorities
kubectl -n authorino apply -f ./examples/priorities.yaml

curl -H 'Host: talker-api' -H 'Authorization: Bearer ndyBzreUzF4zqDQsqSPMHkRhriEOtcRx' http://localhost:8000/hello
# should see no logs of id configs `tier-2` or `tier-3`
# x-auth-data should contain {"first-uuid": <x>, "second-path": "/first_uuid=<x>", "second-uuid": <y>}

curl -H 'Host: talker-api' -H 'Authorization: Bearer K10Z4oi9kjziUYfh4Ed8f5cFRnRa7Iqg' http://localhost:8000/hello
# logs to id configs `tier-1` and `tier-2`; maybe `tier-3`

curl -H 'Host: talker-api' -H 'Authorization: Bearer K10Z4oi9kjziUYfh4Ed8f5cFRnRa7Iqg' http://localhost:8000/blah
# should see no logs of authz policy `more-expensive-policy`

kubectl -n authorino delete -f ./examples/priorities.yaml

# extendedProperties, opa, wristband
kubectl -n authorino apply -f ./examples/wristband.yaml

curl -H 'Host: talker-api' -H 'Authorization: APIKEY ndyBzreUzF4zqDQsqSPMHkRhriEOtcRx' http://localhost:8000/auth
# x-ext-auth-wristband should contain a wristband token for a non-admin user

curl -H 'Host: talker-api' -H 'Authorization: Wristband <wristband>' http://localhost:8000/hi # 200
curl -H 'Host: talker-api' -H 'Authorization: Wristband <wristband>' http://localhost:8000/bye # 403

curl -H 'Host: talker-api' -H 'Authorization: APIKEY Vb8Ymt1Y2hWvaKcAcElau81ia2CsAYUn' http://localhost:8000/auth
# x-ext-auth-wristband should contain a wristband token for an admin user

curl -H 'Host: talker-api' -H 'Authorization: Wristband <wristband>' http://localhost:8000/hi # 200
curl -H 'Host: talker-api' -H 'Authorization: Wristband <wristband>' http://localhost:8000/bye # 200

curl -H 'Host: talker-api' -H 'Authorization: Wristband <wristband>' http://localhost:8000/auth # 200

kubectl -n authorino delete -f ./examples/wristband.yaml

# kubernetes authz
kubectl -n authorino apply -f ./examples/kubernetes-authz.yaml

CURRENT_K8S_CONTEXT=$(kubectl config view -o json | jq -r '."current-context"')
CURRENT_K8S_USER=$(kubectl config view -o json | jq -r --arg K8S_CONTEXT "${CURRENT_K8S_CONTEXT}"  '.contexts[] | select(.name == $K8S_CONTEXT) | .context.user')
CURRENT_K8S_CLUSTER=$(kubectl config view -o json | jq -r --arg K8S_CONTEXT "${CURRENT_K8S_CONTEXT}"  '.contexts[] | select(.name == $K8S_CONTEXT) | .context.cluster')
KUBERNETES_API=$(kubectl config view -o json | jq -r --arg K8S_CLUSTER "${CURRENT_K8S_CLUSTER}" '.clusters[] | select(.name == $K8S_CLUSTER) | .cluster.server')

yq r ~/.kube/config "users(name==$CURRENT_K8S_USER).user.client-certificate-data" | base64 -d > /tmp/kind-cluster-user-cert.pem
yq r ~/.kube/config "users(name==$CURRENT_K8S_USER).user.client-key-data" | base64 -d > /tmp/kind-cluster-user-cert.key

export API_CONSUMER_TOKEN=$(curl -k -X "POST" "$KUBERNETES_API/api/v1/namespaces/authorino/serviceaccounts/api-consumer-1/token" \
     --cert /tmp/kind-cluster-user-cert.pem --key /tmp/kind-cluster-user-cert.key \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{ "apiVersion": "authentication.k8s.io/v1", "kind": "TokenRequest", "spec": { "audiences": ["talker-api"], "expirationSeconds": 600 } }' | jq -r '.status.token')

curl -H 'Host: talker-api' -H "Authorization: Bearer $API_CONSUMER_TOKEN" "http://localhost:8000/v2/authorino/configmaps" # 200

export API_CONSUMER_TOKEN=$(curl -k -X "POST" "$KUBERNETES_API/api/v1/namespaces/authorino/serviceaccounts/api-consumer-2/token" \
     --cert /tmp/kind-cluster-user-cert.pem --key /tmp/kind-cluster-user-cert.key \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{ "apiVersion": "authentication.k8s.io/v1", "kind": "TokenRequest", "spec": { "audiences": ["talker-api"], "expirationSeconds": 600 } }' | jq -r '.status.token')

curl -H 'Host: talker-api' -H "Authorization: Bearer $API_CONSUMER_TOKEN" "http://localhost:8000/v2/authorino/configmaps" # 403

kubectl -n authorino delete -f ./examples/kubernetes-authz.yaml

# dynamic response, envoy dynamic metadata
make limitador

kubectl -n authorino apply -f ./examples/dynamic-response.yaml

curl -H 'Host: talker-api' -H "Authorization: APIKEY ndyBzreUzF4zqDQsqSPMHkRhriEOtcRx" http://localhost:8000/hello
# x-ext-auth-wristband should contain a wristband token
# x-ext-auth-data should contain {"authorized":true, "geeting-message": "Hello, John Doe", "request-time": <ts>}
# should be limited to 5 hits per minute

Just verified the changes and all looks good according to the steps provided by @guicassolato
❯ curl -H 'Host: talker-api' -H 'Authorization: Bearer ndyBzreUzF4zqDQsqSPMHkRhriEOtcRx' http://localhost:8000/hello

{
  "method": "GET",
  "path": "/hello",
  "query_string": null,
  "body": "",
  "headers": {
    "Host": "talker-api",
    "User-Agent": "curl/7.64.1",
    "Accept": "*/*",
    "Authorization": "Bearer ndyBzreUzF4zqDQsqSPMHkRhriEOtcRx",
    "X-Forwarded-For": "<IP_ADDRESS>",
    "X-Forwarded-Proto": "http",
    "X-Envoy-Internal": "true",
    "X-Request-Id": "db8379a7-82e4-42f2-bcce-c7c3106b1357",
    "X-Auth-Data": "{\"first-uuid\":\"042ec387-9e4c-43e3-b7fb-7108746187d4\",\"second-path\":\"/first_uuid=042ec387-9e4c-43e3-b7fb-7108746187d4\",\"second-uuid\":\"4969a756-400b-4ea1-a859-1690d97565fa\",\"tier\":\"1\"}",
    "X-Envoy-Expected-Rq-Timeout-Ms": "15000",
    "Version": "HTTP/1.1"
  },
  "uuid": "9bdcd24f-20b7-4416-ae76-f3651a3a308b"
}%
❯ curl -H 'Host: talker-api' -H 'Authorization: Bearer K10Z4oi9kjziUYfh4Ed8f5cFRnRa7Iqg' http://localhost:8000/hello

{
  "method": "GET",
  "path": "/hello",
  "query_string": null,
  "body": "",
  "headers": {
    "Host": "talker-api",
    "User-Agent": "curl/7.64.1",
    "Accept": "*/*",
    "Authorization": "Bearer K10Z4oi9kjziUYfh4Ed8f5cFRnRa7Iqg",
    "X-Forwarded-For": "<IP_ADDRESS>",
    "X-Forwarded-Proto": "http",
    "X-Envoy-Internal": "true",
    "X-Request-Id": "390c929e-e27e-42e0-ab4d-0bc2ca973a98",
    "X-Auth-Data": "{\"first-uuid\":\"77eaf68e-0a5b-4650-92d1-98a01771f3cd\",\"second-path\":\"/first_uuid=77eaf68e-0a5b-4650-92d1-98a01771f3cd\",\"second-uuid\":\"33ad6c2a-cffa-43f6-b0a0-cf1ecaea9574\",\"tier\":\"2\"}",
    "X-Envoy-Expected-Rq-Timeout-Ms": "15000",
    "Version": "HTTP/1.1"
  },
  "uuid": "0d6bd092-5b3e-4103-90f8-1f1e8f981bd5"
}%
❯ curl -H 'Host: talker-api' -H 'Authorization: Bearer K10Z4oi9kjziUYfh4Ed8f5cFRnRa7Iqg' http://localhost:8000/blah

❯ curl -H 'Host: talker-api' -H "Authorization: Bearer $API_CONSUMER_TOKEN"  "http://localhost:8000/v2/authorino/configmaps" # 200

{
  "method": "GET",
  "path": "/v2/authorino/configmaps",
  "query_string": null,
  "body": "",
  "headers": {
    "Host": "talker-api",
    "User-Agent": "curl/7.64.1",
    "Accept": "*/*",
    "Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Im1RRXFqVWlhaXh5ZFcwaTg1RWZxbWMyMzk1Q1d6ZVN1SGxJZTh3Rkc3Q0EifQ.eyJhdWQiOlsidGFsa2VyLWFwaSJdLCJleHAiOjE2MzcwNzQxNjYsImlhdCI6MTYzNzA3MzU2NiwiaXNzIjoiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiLCJrdWJlcm5ldGVzLmlvIjp7Im5hbWVzcGFjZSI6ImF1dGhvcmlubyIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhcGktY29uc3VtZXItMSIsInVpZCI6ImZlNzg1YmE2LTg1NWYtNDJhMS04MDEzLWJmZGE3YTUxYjMwOSJ9fSwibmJmIjoxNjM3MDczNTY2LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6YXV0aG9yaW5vOmFwaS1jb25zdW1lci0xIn0.BO9opR6q9jWuCPbW40TkqI49RGJJjBdMy0QQBwSq6R5WQ7NELDayuTSZYI1VS6TYQeDBge92MdMlrkgJ7hUPNPval-XLgahJXPHO00IhlZ3yfu90ZzU6PoFqwteJ-bZhb8RsnNUpBr3bAJ5lpbZTQY8Vf9APyDm8aM5IsYU9SwJIVhGozTD-ZCwcD2O2PzJ06iywQuV5h9_Jh74ChzY15VNPlskNjrVtI8AzkS6hwUh733CK4dpNRrdFLVgQBR6lvAaO1rSrAtv_Do1OhjSDUimK0v7ro8AjeESTw1cnstLvvlc9wvqtf26Pl0jq6qz4jrzFvY-zzWUe1EZy0ggwsg",
    "X-Forwarded-For": "<IP_ADDRESS>",
    "X-Forwarded-Proto": "http",
    "X-Envoy-Internal": "true",
    "X-Request-Id": "e09d1e62-d448-4f7b-bfb0-04aad89e922d",
    "X-Envoy-Expected-Rq-Timeout-Ms": "15000",
    "Version": "HTTP/1.1"
  },
  "uuid": "dcce5221-7bba-4542-930d-2c276a3bbb23"
}%

❯ curl -H 'Host: talker-api' -H "Authorization: Bearer $API_CONSUMER_TOKEN" -vv "http://localhost:8000/v2/authorino/configmaps" # 403

*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8000 (#0)
> GET /v2/authorino/configmaps HTTP/1.1
> Host: talker-api
> User-Agent: curl/7.64.1
> Accept: */*
> Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Im1RRXFqVWlhaXh5ZFcwaTg1RWZxbWMyMzk1Q1d6ZVN1SGxJZTh3Rkc3Q0EifQ.eyJhdWQiOlsidGFsa2VyLWFwaSJdLCJleHAiOjE2MzcwNzQyNjksImlhdCI6MTYzNzA3MzY2OSwiaXNzIjoiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiLCJrdWJlcm5ldGVzLmlvIjp7Im5hbWVzcGFjZSI6ImF1dGhvcmlubyIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhcGktY29uc3VtZXItMiIsInVpZCI6IjNmMmQxY2QyLWNlNDctNDNkNy04NWUyLWNkODExMDkzNTY3NiJ9fSwibmJmIjoxNjM3MDczNjY5LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6YXV0aG9yaW5vOmFwaS1jb25zdW1lci0yIn0.Hdba9xTNrLvhZjD-QsY6lalct9WkrZAj38nCG197F9AqrHcKre_MRDQm2miBntM9TtLoh-_mv7-hOXq548dckpKrRjdE2ATD9ntOKbsZte7A0i2c-FF5PKLFoTQHqkdGbDcDPFuYafTxYBQarVjYJLDkUbcsYTEDHihQtl8oHyj-iPLVJvSe6DAMwuW0CHEFFFk5_nXuwKM7dvzjaZjsjAQME-2cA-xlG4smab2apfG7fK81aOtLstDuQOTiwKd55pxqp_R4WYeXEZ_4GoP1ZLbdzWRbh-JzjBVsNppwCGSh_LLvQ4MoDgykrUTMirBeUsJmEJmHWMOc3nWzxg54LA
>
< HTTP/1.1 403 Forbidden
< x-ext-auth-reason: Not authorized: unknown reason
< date: Tue, 16 Nov 2021 14:41:27 GMT
< server: envoy
< content-length: 0
<
* Connection #0 to host localhost left intact
* Closing connection 0

❯ curl -H 'Host: talker-api' -H "Authorization: APIKEY ndyBzreUzF4zqDQsqSPMHkRhriEOtcRx" http://localhost:8000/hello

{
  "method": "GET",
  "path": "/hello",
  "query_string": null,
  "body": "",
  "headers": {
    "Host": "talker-api",
    "User-Agent": "curl/7.64.1",
    "Accept": "*/*",
    "Authorization": "APIKEY ndyBzreUzF4zqDQsqSPMHkRhriEOtcRx",
    "X-Forwarded-For": "<IP_ADDRESS>",
    "X-Forwarded-Proto": "http",
    "X-Envoy-Internal": "true",
    "X-Request-Id": "41e63331-eacf-4995-b272-9fbf6e0446a1",
    "X-Ext-Auth-Wristband": "eyJhbGciOiJFUzI1NiIsImtpZCI6IndyaXN0YmFuZC1zaWduaW5nLWtleSIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJpbnRlcm5hbCIsImJvcm4iOiIyMDIxLTExLTE2VDE0OjM0OjIwWiIsImV4cCI6MTYzNzA3NDAzNSwiaWF0IjoxNjM3MDczNzM1LCJpc3MiOiJodHRwczovL2F1dGhvcmluby1vaWRjLmF1dGhvcmluby5zdmM6ODA4My9hdXRob3Jpbm8vdGFsa2VyLWFwaS1wcm90ZWN0aW9uL3dyaXN0YmFuZCIsInJvbGVzIjpbImNvbnN1bWVyIl0sInN1YiI6ImY0ZTFlMTMxMTgxZGY4ZTNjNjE2Yjc5MTg2OWJmOTRkYTczYjk0NzZiODJjOWVkNDA1M2IyMjg4OGQyZDk0YzkiLCJ1c2VybmFtZSI6ImNvbnN1bWVyLTEifQ.PrXhD71-O3RAfUnd8vSCCfO6OMfmsZbXbx3MJQia6C9fIdMhykXnUsHWDjdYsDnazNdDtZh7AXHUNUXQuz9M6g",
    "X-Ext-Auth-Data": "{\"authorized\":true,\"geeting-message\":\"Hello, John Doe!\",\"request-time\":1637073735}",
    "X-Envoy-Expected-Rq-Timeout-Ms": "15000",
    "Version": "HTTP/1.1"
  },
  "uuid": "0f128385-af3d-44ae-a6a1-81c047318b29"
}%


Added support for GingkoApp.com

Partially fixes issue #86.
Each new file has a separate commit.
Revisions made after running make lint were stored in commits 4-5.
The toggle button shows in the header / navbar between the search and tree name.
I specified buttonType: "minimal to play nice with smaller screen sizes, although that can be easily adjusted based on window.innerWidth.

Screenshots
Timer active

Timer inactive

Just for information. The pull request will be evaluated and merged after the end of the toggl developer challenge (https://toggl.com/toggl-developer-challenge) on February 14th. Thank you for your contribution.

Merged with rebase


⚠ Bofrost.es has degraded performance

In 588fec5, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1624 ms

Resolved: Bofrost.es performance has improved in c58453d after 11 minutes.


@ mosphere GA launch

@jelicacomo app launch outline here.
ETA launch date:
Cross Stores Checklist

[x] The name of you app (should be 30 characters or less to comply with both stores)
[ ] Secure and activate an @sign for your app
[x] A logo for your app that can be used as an Icon in both stores
[ ] Privacy policy + URL (we recommend GitHub pages) @nickelskevin @tinashe404
[ ] Website landing page for your app @rtilney
[ ] A wavi.ng page for your app @rtilney

Apple App Store Checklist
To get set up in the Apple App store, you will need:

[x] Name of your app (30 characters, reviewed by Apple before it is made available)
[ ] Subtitle for your app (30 characters, reviewed by Apple before it is made available)
[x] App Store Icon
[x] Category selections for your app @nickelskevin
[x] Content Rights selection
[x] Age Rating selection
[x] License Agreement selection (your own or Apple’s Standard License Agreement)
[x] Pricing information
[ ] Availability (by country) selection
[ ] Privacy Policy URL (required) @nickelskevin @rtilney
[ ] User Privacy Choices URL (optional)
[x] Data Collection Type
[ ] What’s new in the version to be released
[ ] Up to three App Preview Videos @rtilney
[ ] Up to 10 screenshots for iPhone 6.5" display @rtilney @tinashe404
[ ] Up to 10 screenshots for iPhone 5.5" display @rtilney @tinashe404
[ ] Up to 10 screenshots for iPad Pro (3rd Gen) 12.9" display @rtilney @tinashe404
[ ] Up to 10 screenshots for iPad Pro (2nd Gen) 12.9" display @rtilney @tinashe404
[ ] Promotional Text
[ ] A description of your app, detailing features and functionality
[ ] Keywords for search optimization
[ ] Support URL for your app (could be a mailto://)
[ ] Marketing URL for your app (AKA landing page) @rtilney
[ ] Copyright details

Google Play Store Checklist
To get set up in the Google Play store, you will need:

[x] Name of your app (up to 50 characters, reviewed by Google before it is made available)
[ ] Short description (up to 80 characters, reviewed by Google before it is made available)
[ ] Full description (up to 4,000 characters, reviewed by Google before it is made available)
[x] App icon @rtilney
[ ] Feature graphic @rtilney
[ ] Feature YouTube video
[x] App or Game selection for your app
[x] Category selections for your app @nickelskevin
[ ] Tags for search optimization (up to 5 from their list)
[ ] Privacy Policy URL (required) @nickelskevin @rtilney
[ ] Ads Policy
[ ] App access policy (for testing) @nickelskevin
[x] Content ratings
[x] Target audience and content
[x] Pricing information
[ ] 2 to 8 phone screenshots @rtilney
[ ] Up to 8 screenshots for 7" tablet display @rtilney @tinashe404
[ ] Up to 8 screenshots for 10" tablet display @rtilney @tinashe404
[ ] Marketing URL for your app (AKA landing page)

@sarika01 can you please add an update here with regard to any blockers or major bugs still to be resolved? Also what is the status of the Apple store blocker? If you can include timing of resolving issues that would be great. TY

The major issue faced in Atmosphere is failure to share files of size > 1Mb. This is also dependent on notifications.
This app has not faced any issue for store submissions last time.
As of now, 27th Aug can be targeted to resolve the issues and then a week thereafter for store release.

Thanks @sarika01 are there any open bugs or issues, you can link to here for reference?

Dependent on this issue:
#atsign-foundation/apps#19


algo.py UnboundLocalError: local variable 'history' referenced before assignment

version:
QTPyLib (1.5.45)
ezIBpy (1.12.42)
algo.py line 283, self.bars = history
    # get history
    if not self.blotter_args["dbskip"] and (self.backtest or self.preload):

        start = self.backtest_start if self.backtest else tools.backdate(self.preload)
        end = self.backtest_end if self.backtest else None

        history = self.blotter.history(
            symbols    = self.symbols,
            start      = start,
            end        = end,
            resolution = self.resolution,
            tz         = self.timezone,
            continuous = self.continuous
        )

        # history needs backfilling?
        if not self.blotter.backfilled:
            # "loan" Blotter our ibConn
            self.blotter.ibConn = self.ibConn

            # call the back fill
            self.blotter.backfill(data=history, resolution=self.resolution, start=start, end=end)

            # re-get history from db
            history = self.blotter.history(
                symbols    = self.symbols,
                start      = start,
                end        = end,
                resolution = self.resolution,
                tz         = self.timezone,
                continuous = self.continuous
            )

            # take our ibConn back :)
            self.blotter.ibConn = None

    if self.backtest:
        # initiate strategy
        self.on_start()

        # drip history
        self.blotter.drip(history,
            self._tick_handler if self.resolution[-1] in ("K", "V") else self._bar_handler)

    else:
        # place history self.bars
        self.bars = history

        # add instruments to blotter in case they do not exist
        self.blotter.register(self.instruments)

        # initiate strategy
        self.on_start()

        # listen for RT data
        self.blotter.stream(
            symbols       = self.symbols,
            tz            = self.timezone,
            quote_handler = self._quote_handler,
            tick_handler  = self._tick_handler,
            bar_handler   = self._bar_handler,
            book_handler  = self._book_handler
        )

And why I get into else block?
python strategy_1.py --blotter MainBlotter --log strategy_log

Are you back-testing? Please post your strategy initialize parameters

here is my trial strategy:
strategy.py
from qtpylib.algo import Algo
from qtpylib import futures
class DumbAlgo(Algo):
def on_start(self):
    # optional method that gets called once upon start
    pass

def on_fill(self, instrument, order):
    # optional method that gets called on every order fill
    pass

def on_orderbook(self, instrument):
    # optional method that gets called on every orderbook change
    pass

def on_quote(self, instrument):
    # optional method that gets called on every quote change
    pass

def on_tick(self, instrument):
    # optional method that gets called on every tick received
    print(".", end="", flush=True)

def on_bar(self, instrument):
    # optional method that gets called on every bar received
    bars = instrument.get_bars(lookback=168)

    print("--- BARS ------------")
    print(bars)
    print("----------------------")

    last_bar = bars[-1:]
    print("Got Bar ",type(last_bar))
    print("Got Bar ",last_bar)

    dt = last_bar.index[-1]
    unixdate = dt.timestamp()

    print("Datetime ", dt)
    print("Unixdate ", unixdate)

if name == "main":
# initialize the algo
strategy = DumbAlgo(
    instruments = [
            ("AUD","FUT","GLOBEX","USD",futures.get_active_contract("AUD"),0.0, ""),
            ("BZ","FUT","NYMEX","USD",futures.get_active_contract("BZ"),0.0, ""),
            ("CAD","FUT","GLOBEX","USD",futures.get_active_contract("CAD"),0.0, ""),
            ("CHF","FUT","GLOBEX","USD",futures.get_active_contract("CHF"),0.0, ""),
            ("CL","FUT","NYMEX","USD",futures.get_active_contract("CL"),0.0, ""),
            ("E7","FUT","GLOBEX","USD",futures.get_active_contract("E7"),0.0, ""),
            ("EMD","FUT","GLOBEX","USD",futures.get_active_contract("EMD"),0.0, ""),
            ("ES","FUT","GLOBEX","USD",futures.get_active_contract("ES"),0.0, ""),
            ("EUR","FUT","GLOBEX","USD",futures.get_active_contract("EUR"),0.0, ""),
            ("F1U","FUT","ECBOX","USD",futures.get_active_contract("F1U"),0.0, ""),
            ("GBP","FUT","GLOBEX","USD",futures.get_active_contract("GBP"),0.0, ""),
            ("GC","FUT","NYMEX","USD",futures.get_active_contract("GC"),0.0, ""),
            ("GE","FUT","GLOBEX","USD",futures.get_active_contract("GE"),0.0, ""),
            ("GF","FUT","GLOBEX","USD",futures.get_active_contract("GF"),0.0, ""),
            ("HE","FUT","GLOBEX","USD",futures.get_active_contract("HE"),0.0, ""),
            ("HG","FUT","NYMEX","USD",futures.get_active_contract("HG"),0.0, ""),
            ("HO","FUT","NYMEX","USD",futures.get_active_contract("HO"),0.0, ""),
            ("JPY","FUT","GLOBEX","USD",futures.get_active_contract("JPY"),0.0, ""),
            ("KE","FUT","ECBOX","USD",futures.get_active_contract("KE"),0.0, ""),
            ("LE","FUT","GLOBEX","USD",futures.get_active_contract("LE"),0.0, ""),
            ("M6A","FUT","GLOBEX","USD",futures.get_active_contract("M6A"),0.0, ""),
            ("M6B","FUT","GLOBEX","USD",futures.get_active_contract("M6B"),0.0, ""),
            ("M6E","FUT","GLOBEX","USD",futures.get_active_contract("M6E"),0.0, ""),
            ("MCD","FUT","GLOBEX","USD",futures.get_active_contract("MCD"),0.0, ""),
            ("MGC","FUT","NYMEX","USD",futures.get_active_contract("MGC"),0.0, ""),
            ("MXP","FUT","GLOBEX","USD",futures.get_active_contract("MXP"),0.0, ""),
            ("N1U","FUT","ECBOX","USD",futures.get_active_contract("N1U"),0.0, ""),
            ("NG","FUT","NYMEX","USD",futures.get_active_contract("NG"),0.0, ""),
            ("NIY","FUT","GLOBEX,JPY",futures.get_active_contract("NIY"),0.0, ""),
            ("NKD","FUT","GLOBEX","USD",futures.get_active_contract("NKD"),0.0, ""),
            ("NQ","FUT","GLOBEX","USD",futures.get_active_contract("NQ"),0.0, ""),
            ("NZD","FUT","GLOBEX","USD",futures.get_active_contract("NZD"),0.0, ""),
            ("PA","FUT","NYMEX","USD",futures.get_active_contract("PA"),0.0, ""),
            ("PL","FUT","NYMEX","USD",futures.get_active_contract("PL"),0.0, ""),
            ("QM","FUT","NYMEX","USD",futures.get_active_contract("QM"),0.0, ""),
            ("RB","FUT","NYMEX","USD",futures.get_active_contract("RB"),0.0, ""),
            ("RP","FUT","GLOBEX,GBP",futures.get_active_contract("RP"),0.0, ""),
            ("SI","FUT","NYMEX","USD",futures.get_active_contract("SI"),0.0, ""),
            ("TN","FUT","ECBOX","USD",futures.get_active_contract("TN"),0.0, ""),
            ("UB","FUT","ECBOX","USD",futures.get_active_contract("UB"),0.0, ""),
            ("YM","FUT","ECBOX","USD",futures.get_active_contract("YM"),0.0, ""),
            ("ZB","FUT","ECBOX","USD",futures.get_active_contract("ZB"),0.0, ""),
            ("ZC","FUT","ECBOX","USD",futures.get_active_contract("ZC"),0.0, ""),
            ("ZF","FUT","ECBOX","USD",futures.get_active_contract("ZF"),0.0, ""),
            ("ZL","FUT","ECBOX","USD",futures.get_active_contract("ZL"),0.0, ""),
            ("ZM","FUT","ECBOX","USD",futures.get_active_contract("ZM"),0.0, ""),
            ("ZN","FUT","ECBOX","USD",futures.get_active_contract("ZN"),0.0, ""),
            ("ZS","FUT","ECBOX","USD",futures.get_active_contract("ZS"),0.0, ""),
            ("ZT","FUT","ECBOX","USD",futures.get_active_contract("ZT"),0.0, ""),
            ("ZW","FUT","ECBOX","USD",futures.get_active_contract("ZW"),0.0, ""),
        ],
    resolution  = "1D" # 1Min bar resolution (Pandas "resample" resolutions)
)

# run the algo
strategy.run()

Can you upgrade to the latest version and see if this problem was resolved?
$ pip install qtpylib --upgrade --no-cache-dir

Also, you can write you initialize section in the following format to achieve the same thing using a simpler codebase:
if __name__ == "__main__":

    # initialize the algo
    strategy = DumbAlgo(
        instruments = [
            "FUT.AUD", "FUT.BZ", "FUT.CAD", "FUT.CHF", "FUT.CL", "FUT.E7",
            "FUT.EMD", "FUT.ES", "FUT.EUR", "FUT.F1U", "FUT.GBP", "FUT.GC",
            "FUT.GE", "FUT.GF", "FUT.HE", "FUT.HG", "FUT.HO", "FUT.JPY",
            "FUT.KE", "FUT.LE", "FUT.M6A", "FUT.M6B", "FUT.M6E", "FUT.MCD",
            "FUT.MGC", "FUT.MXP", "FUT.N1U", "FUT.NG", "FUT.NIY", "FUT.NKD",
            "FUT.NQ", "FUT.NZD", "FUT.PA", "FUT.PL", "FUT.QM", "FUT.RB", "FUT.RP",
            "FUT.SI", "FUT.TN", "FUT.UB", "FUT.YM", "FUT.ZB", "FUT.ZC", "FUT.ZF",
            "FUT.ZL", "FUT.ZM", "FUT.ZN", "FUT.ZS", "FUT.ZT", "FUT.ZW"
        ],
        resolution  = "1D"
    )

    # run the algo
    strategy.run()

Closing this for now. Please re-open if problem persist


Use native array functions instead of laravels collections

Thank you for this.
I'm going to hold this off for now, as I think pulling in Laravel's Collection for this make the code more readable.


HDDS-3239. Provide message-level metrics from the generic protocol dispatch.

What changes were proposed in this pull request?
Ozone RPC protocols (due to the limitation of protobuf) are very simple: There is only one message per service and the message is routed to the appropriate method based on the type.
It makes very easy to add tracing / metrics as we have one generic dispatcher (OzoneProtocolMessageDispatcher.java) where we implemented opentracing support and basic metric collection.
In this patch I propose to improve this metric to add the message type to the metrics as a tag to make it easier to follow what's going on... (eg. see the distribution of the incoming message types)
We can also measure the total amount of time spent to serve one specific type of requests which can be used to calculate the moving average for latency.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3239
How was this patch tested?
Deployed to Kubernetes and checked the prometheus metrics.

Base branch is changed. Please don't merge it from the github web ui, only manually.


New package: ActuaryUtilities v0.2.0

Registering package: ActuaryUtilities
Repository: https://github.com/JuliaActuary/ActuaryUtilities.jl
Created by: @alecloudenback
Version: v0.2.0
Commit: acbba843226b7846bad37a82d6f50efd8afe54c4
Reviewed by: @alecloudenback
Reference: https://github.com/JuliaActuary/ActuaryUtilities.jl/commit/acbba843226b7846bad37a82d6f50efd8afe54c4#commitcomment-38248672
Release notes:

Added breakeven function

This isn't a new package - looks like since v0.1.0 wasn't merged yet it didn't pick up that prior pull request.

cancel request

@alecloudenback Do you want me to merge this? Or do you want me to close this?

@DilumAluthge  merge please - thanks for helping me sort through this early registration stuff


[11.x] hash the token going into the cache

this is a bugfix for the new password reset cache driver. when translating from the DatabaseTokenRepository, I forgot to mimic the behavior of hashing the token going into storage.
thanks to @christophrumpel for finding this.

relevant line in the DatabaseTokenRepository. https://github.com/laravel/framework/blob/11.x/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php#L120


Generate .d.ts files

This would let you commit types without committing local ids.

done in 4c5cc96a431ecc41213e9f224c5fada2b8be3ef0


Using @apply with postcss-nested causes each class to have its own rule

Thanks for this, it's really cool! I'm using postcss-nested in my project and I stumbled upon this bug.
Description
When using @apply with nested rules using postcss-nested, each applied class has its own rule. This makes using background color and opacity utilities at the same time impossible.
Example
CSS
.container {
  /* I use `a` element selector in this example, but using a class selector also doesn't work */
  a {
    @apply bg-blue-800 bg-opacity-10;
    /* or @apply bg-opacity-10 bg-blue-800; same result */
  }
}

With JIT

Without JIT (expected)

Reproducible repo

nested-jit: postcss-nested with JIT, which has the bug as described.
nested-aot: postcss-nested with AOT. The result is correct and only one rule produced.
nested-jit-separate: postcss-nested with JIT, but with separate @apply for each class. The result is correct, but it produces multiple rules.
nesting-jit: postcss-nesting with JIT. The result is correct, but it produces multiple rules.
nesting-aot: postcss-nesting with AOT. The result is correct and only one rule produced.

Notes
I've tried:

[x] Changing the PostCSS plugins order so that postcss-nested comes before @tailwindcss/jit, doesn't work.
[x] Using postcss-nesting: it works, but it still produces separate rules.
[x] Separating the @apply like so:

.container {
  a {
    @apply bg-blue-800;
    @apply bg-opacity-10;
  }
}

Which works, but it still produces separate results.
This also affects other classes that rely on being applied within the same rule, such as border color and border opacity.

Separate the rules
.container {   a {     @apply bg-blue-800;     @apply bg-opacity-10;   } }

Separate the rules.
bg-xxx-xxx  applies the bg color and the default -tw-bg-opacity var set to 1 and you have to tell the system to use the one you specify.
Since Tailwind also applies the same variable that bg-opacity-xxx does, you must take into account the order CSS is processed.  You also need to specify the CSS in the correct order for it to be applied properly.
.container {
  a {
    @apply bg-opacity-10;
    @apply bg-blue-800;
  }
}

It might be related to #76, using the selector .container a works.

If I'm not mistaken, using postcss-nesting appears to fix your problem! 😃 When using postcss-nesting you need to add an extra & when nesting, so & a instead of just a.

@lifedup Thanks for the hint!
It seems to work, but with opacity after the background color, so:
.container {
  a {
    @apply bg-blue-800;
    @apply bg-opacity-10;
  }
}

Which makes sense because bg-opacity  is supposed to override the  --tw-bg-opacity of the bg color:

@silvenon Thanks!! I totally forgot about that. Indeed, postcss-nesting seems to work. I can use a single @apply with both @apply bg-blue-800 bg-opacity-10 and  @apply bg-opacity-10 bg-blue-800 and they produce the correct results.
However, using postcss-nested or postcss-nesting with JIT produces separate rules for each class applied (even if using a single @apply), which isn't the case when using AOT. I've cleaned up the reproduction:

nested-jit: postcss-nested with JIT, which has the bug as described.
nested-aot: postcss-nested with AOT. The behavior is correct and only one rule produced.
nested-jit-separate: postcss-nested with JIT, but with separate @apply for each class. The behavior is correct, but it produces multiple rules.
nesting-jit: postcss-nesting with JIT. The behavior is correct, but it produces multiple rules.
nested-aot: postcss-nesting with AOT. The behavior is correct and only one rule produced.

If you happen to be using nextjs,  enable sass and use .scss/sass files.  It keeps the custom classes intact using multiple @apply or a single with multiple rules. I use next and this setup and so far it seems to be working as expected.

I use nextjs with sass enabled and am using scss files.  I group my @apply rules
  @apply flex flex-col-reverse;
  @apply overflow-x-hidden overflow-y-auto;
  @apply z-50;`
 & .content {
    @apply flex flex-col;
    @apply p-safe;
  }
}
 and it seems to work as expected without any other postcss configs or modules.  Note that next is compiling sass first.  If you happen to be using next try to enable sass and using sass/scss files.

I use nextjs, enabled sass, and am using scss files. I can now group my @apply rules

This is my solution too: I swapped to SASS, removed postcss-nesting plugin and JIT works like a charm!
I had locally memory issues on build too but with JIT enabled my project compiles locally without problem ;)

Troubleshooted this for a while, I would have expected the solution to be to just put postcss-nested before Tailwind in your postcss.config.js file:
module.exports = {
  plugins: {
    'postcss-nested': {},
    '@tailwindcss/jit': {},
    autoprefixer: {},
  },
}

However this still doesn't work because postcss-nested recently migrated to the new PostCSS visitor API which breaks guarantees about which order transforms are performed in.
You can fix this for now by pinning your postcss-nested dependency to 5.0.1 and changing the plugin order like I've mentioned above. I'm going to work with the PostCSS team to find out if there's a way to solve this on their end, because it doesn't seem reasonable to me that we should be expected to handle nested CSS ourselves when it's not syntactically valid.

Another solution is to use postcss-nesting (which doesn't use the new visitor API) instead of postcss-nested, and again make sure it is first in the plugin list:
module.exports = {
  plugins: {
    'postcss-nesting': {},
    '@tailwindcss/jit': {},
    autoprefixer: {},
  },
}

That is what I would recommend at the moment 👍  Going to close with that as the recommended solution but still going to talk to other maintainers about the bigger picture issue here.


ValueError with sc.pp.highly_variable_genes with pandas 0.24

Minimal example:
import scanpy.api as sc
sc.logging.print_versions()

adata = sc.datasets.blobs()

sc.pp.highly_variable_genes(adata)

Output:
**scanpy==1.3.7 anndata==0.6.17 numpy==1.15.4 scipy==1.2.0 pandas==0.24.0 scikit-learn==0.20.2 statsmodels==0.9.0 python-igraph==0.7.1 louvain==0.6.1

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-5d93fbf298b7> in <module>
      4 adata = sc.datasets.blobs()
      5
----> 6 sc.pp.highly_variable_genes(adata)

~/miniconda3/envs/spols190117/lib/python3.6/site-packages/scanpy/preprocessing/highly_variable_genes.py in highly_variable_genes(adata, min_disp, max_disp, min_mean, max_mean, n_top_genes, n_bins, flavor, subset, inplace)
    115         # a normalized disperion of 1
    116         one_gene_per_bin = disp_std_bin.isnull()
--> 117         gen_indices = np.where(one_gene_per_bin[df['mean_bin']])[0].tolist()
    118         if len(gen_indices) > 0:
    119             logg.msg(

~/miniconda3/envs/spols190117/lib/python3.6/site-packages/pandas/core/series.py in __getitem__(self, key)
    909         Please use .at[] or .iat[] accessors.
    910
--> 911         Parameters
    912         ----------
    913         index : label

~/miniconda3/envs/spols190117/lib/python3.6/site-packages/pandas/core/series.py in _get_with(self, key)
    951         -------
    952         series : Series
--> 953             If label is contained, will be reference to calling Series,
    954             otherwise a new object
    955         """

~/miniconda3/envs/spols190117/lib/python3.6/site-packages/pandas/core/series.py in reindex(self, index, **kwargs)

~/miniconda3/envs/spols190117/lib/python3.6/site-packages/pandas/core/generic.py in reindex(self, *args, **kwargs)
   4344
   4345             elif not is_list_like(value):
-> 4346                 new_data = self._data.fillna(value=value, limit=limit,
   4347                                              inplace=inplace,
   4348                                              downcast=downcast)

~/miniconda3/envs/spols190117/lib/python3.6/site-packages/pandas/core/generic.py in _reindex_axes(self, axes, level, limit, tolerance, method, fill_value, copy)
   4357             return self._constructor(new_data).__finalize__(self)
   4358
-> 4359     def ffill(self, axis=None, inplace=False, limit=None, downcast=None):
   4360         """
   4361         Synonym for :meth:`DataFrame.fillna(method='ffill') <DataFrame.fillna>`

~/miniconda3/envs/spols190117/lib/python3.6/site-packages/pandas/core/indexes/category.py in reindex(self, target, method, level, limit, tolerance)
    501         # in which case we are going to conform to the passed Categorical
    502         new_target = np.asarray(new_target)
--> 503         if is_categorical_dtype(target):
    504             new_target = target._shallow_copy(new_target, name=self.name)
    505         else:

ValueError: cannot reindex with a non-unique indexer

**

The error is gone with pandas 0.23.4. There was a change in the API of reindex in pandas: http://pandas.pydata.org/pandas-docs/stable/whatsnew/v0.24.0.html

Thank you so much for fixing this, @flying-sheep!

Sure! @ivirshup figured it out independently within 2 hours of me: theislab/anndata#107
The fix needed three parts:

I fixed the tests to actually work (they were broken since forever because they used a hardcoded file name instead of tmp_path, and therefore reused the same file)
I pulled his changes, which covered the writing portion of the needed fixes
I fixed the reading portion in theislab/anndata@4c8163129302391419c7ee4943e7fb766599e2a2
I fixed the highly variable genes function that relied on a slightly different behavior of series in 0.23

Dear All,
running the tutorial pbmc3k.ipynb
These the packages I have installed for this analysis both conda and pip
I get a similar error than above:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-23-ea8d9dc47463> in <module>
----> 1 sc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=3, min_disp=0.5)

~/jupyterminiconda3/envs/scanpy137/lib/python3.6/site-packages/scanpy/preprocessing/highly_variable_genes.py in highly_variable_genes(adata, min_disp, max_disp, min_mean, max_mean, n_top_genes, n_bins, flavor, subset, inplace)
    115         # a normalized disperion of 1
    116         one_gene_per_bin = disp_std_bin.isnull()
--> 117         gen_indices = np.where(one_gene_per_bin[df['mean_bin']])[0].tolist()
    118         if len(gen_indices) > 0:
    119             logg.msg(

~/jupyterminiconda3/envs/scanpy137/lib/python3.6/site-packages/pandas/core/series.py in __getitem__(self, key)
    909             key = check_bool_indexer(self.index, key)
    910
--> 911         return self._get_with(key)
    912
    913     def _get_with(self, key):

~/jupyterminiconda3/envs/scanpy137/lib/python3.6/site-packages/pandas/core/series.py in _get_with(self, key)
    951                 return self.loc[key]
    952
--> 953             return self.reindex(key)
    954         except Exception:
    955             # [slice(0, 5, None)] will break if you convert to ndarray,

~/jupyterminiconda3/envs/scanpy137/lib/python3.6/site-packages/pandas/core/series.py in reindex(self, index, **kwargs)
   3732     @Appender(generic.NDFrame.reindex.__doc__)
   3733     def reindex(self, index=None, **kwargs):
-> 3734         return super(Series, self).reindex(index=index, **kwargs)
   3735
   3736     def drop(self, labels=None, axis=0, index=None, columns=None,

~/jupyterminiconda3/envs/scanpy137/lib/python3.6/site-packages/pandas/core/generic.py in reindex(self, *args, **kwargs)
   4354         # perform the reindex on the axes
   4355         return self._reindex_axes(axes, level, limit, tolerance, method,
-> 4356                                   fill_value, copy).__finalize__(self)
   4357
   4358     def _reindex_axes(self, axes, level, limit, tolerance, method, fill_value,

~/jupyterminiconda3/envs/scanpy137/lib/python3.6/site-packages/pandas/core/generic.py in _reindex_axes(self, axes, level, limit, tolerance, method, fill_value, copy)
   4367             ax = self._get_axis(a)
   4368             new_index, indexer = ax.reindex(labels, level=level, limit=limit,
-> 4369                                             tolerance=tolerance, method=method)
   4370
   4371             axis = self._get_axis_number(a)

~/jupyterminiconda3/envs/scanpy137/lib/python3.6/site-packages/pandas/core/indexes/category.py in reindex(self, target, method, level, limit, tolerance)
    501         else:
    502             if not target.is_unique:
--> 503                 raise ValueError("cannot reindex with a non-unique indexer")
    504
    505             indexer, missing = self.get_indexer_non_unique(np.array(target))

ValueError: cannot reindex with a non-unique indexer

Hi @helios,
You will have to install scanpy from github to use the fix for this. The latest release (1.3.7) does not yet include the fix.

Hi @LuckyMD,
thanks. I was doing exactly that.  I can confirm that everything works as expected.

@flying-sheep, so, we need 1.3.8 essentially, now, right?

Yes. Do you think scanpy is quality-controlled enough that we can cut new releases whenever we please? Else I’m not comfortable to just create a new tag from master and release it by myself.

Good, yes, in the meanwhile, test coverage should be high enough. I can't think of any major hole anymore. Still, it would be nice to briefly coordinate for Scanpy; at least, still these days. But yes, in this case, please make release 1.3.8!

I did, and then I realized that we have the import scanpy as sc change and more features, so I called it 1.4. Btw: could you please add me as owner to scanpy and anndata on PyPI? then I can manage releases and delete files on PyPI.

Wasn't entirely planned to have 1.4 exactly now, but, fine, we have some stuff already 😄 I briefly tweeted about it: https://twitter.com/falexwolf/status/1093140419997822978


Blacklist repositories

Hey, is there a way to blacklist repositories from being starred?
E.g. https://github.com/vincenthz/hs-tls is known to not have mitigated certain timing attacks and is generally very controversial to the point that I don't want to run it in production, advise against its use and don't want it to be starred.
So this isn't really about trolling, but actual concerns.

Sorry but I have no plan to implement such a function.


data entry mockup (contd.)

This expands the mockup menu for data entry by adding forms for places and objects.
Supported actions
In the source menu:

Click "edit" for the first place (the abbey) to see the form for space descriptions
Click "edit" for the first object (letter from Radegund) to see the form for letters/objects.

In the form for the abbey:

Click the edit button (pencil icon) on the listed political region (Aquitaine)
Click "add political region" to see the form for adding a new region in the description. In the form that opens, type in a name. Try typing in Burgundy to add an existing region to the description, or something else to create a new region.
In the "structures" section, click the edit button for Poitiers to see an example of the form. This form includes a fancy visualisation of connected structures, which is is not interactive but could be.

Screenshots

Apologies for the accidental push.


Refactor cpp-console client to have simple API

Purpose

Clean code to make curly brackets on a new line, etc.
Refactor C++ client to have simple API by updating mainAudio.cpp, and adding helper.h, DialogConnector.h, helper.cpp, DialogConnector.cpp etc.

Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[x] Code style update (formatting, local variables)
[x] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code
Verify the functionalities do not change

Regarding class name "DialogConnector"
I was looking at files names in the other samples…
In the UWP sample we have files:
DirectLineSpeechDialogBackend.cs (sounds like a bad name)  - Handles connection to DLS
DialogManager.cs - Takes in a new DirectLineSpeechDialogBackend object. Exposes DLS events and dialog states, manages audio output.
In the Windows Voice Assistant client the dialog is managed in the MainWindows.xaml.cs file. We may want to do similar API refactoring there.
So perhaps in the C++ code we can also call it DialogManager, since it does more than just connec to DLS. It also manages TTS playback and exposes states.

Let's be specific about the helper file and rename it to Log.h or Logging.h Also no need for the helper.cpp for just a small function. TECHNICALLY it's better to put all the functions in the cpp so it's only included once in compiling, but since these are small, I'm not worried about it.

If we do not have other commonly used functions and enum classes put into helper.h&cpp, we can rename it to Log for more specific.
If we put both log declaration and definition in Log.h and include Log.h in multiple places, we will get error during linkage. To avoid such error, we can either put log definition in a separate Log.cpp file or declare log inline.

#pragma once can be used to avoid the multiple inclusions. Best practices are to have all functions in the cpp.

I moved definition from helper.cpp to helper.h, and put #pragma once at the top of helper.h. Still, the build ended up with same errors:
Error LNK2005 "void __cdecl log(void)" (?log@@YAXXZ) already defined in DialogConnector.obj	cppSample mainAudio.obj
Error LNK1169 one or more multiply defined symbols found cppSample cppSample.exe
If I declare log as inline, the errors are gone.

The #pragma once makes sure when you compile a single .cpp file, you don't include the same header twice. So it prevents the compile error. But it does not prevent the linker error, when you are trying to combine several object files into one executable, if more than one object file has this log defined. Make sure the log header is included only in one .cpp file, and declare the function prototype as external in other .cpp files that need to use it.

Thanks Darren. Your explanation really gets to the point.
Another option is, if I declare log as a static function, the linker error is gone. Do you like this idea?

Static is fine for now, since the function is mall. Let's move on!

Done second commit with 2 changes:

Move log function body to log.h, make it a static function, and remove helper.cpp.
Rename DialogConnector to DialogManager, both class name and file names.

Thanks. Since this is a draft PR, I will close this one and create another PR to merge the changes.


[bfmtv][brightcove] A valid ID was not sent for this player

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.08.13. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2017.08.13

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[x] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'http://www.bfmtv.com/mediaplayer/video/l-installation-spectaculaire-du-toit-de-la-gare-de-clamart-971789.html']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.08.13
[debug] Python version 2.7.13 - Linux-4.10.0-32-generic-x86_64-with-Ubuntu-17.04-zesty
[debug] exe versions: ffmpeg 3.2.4-1build2, ffprobe 3.2.4-1build2, rtmpdump 2.4
[debug] Proxy map: {}
[generic] l-installation-spectaculaire-du-toit-de-la-gare-de-clamart-971789: Requesting header
WARNING: Falling back on generic information extractor.
[generic] l-installation-spectaculaire-du-toit-de-la-gare-de-clamart-971789: Downloading webpage
[generic] l-installation-spectaculaire-du-toit-de-la-gare-de-clamart-971789: Extracting information
[download] Downloading playlist: L’installation spectaculaire du toit de la gare de Clamart
[generic] playlist L’installation spectaculaire du toit de la gare de Clamart: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[brightcove:legacy]<PHONE_NUMBER>001: Downloading webpage
ERROR: brightcove said: A valid ID was not sent for this player.
Traceback (most recent call last):
  File "/home/ghislain/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 776, in extract_info
    ie_result = ie.extract(url)
  File "/home/ghislain/bin/youtube-dl/youtube_dl/extractor/common.py", line 433, in extract
    ie_result = self._real_extract(url)
  File "/home/ghislain/bin/youtube-dl/youtube_dl/extractor/brightcove.py", line 304, in _real_extract
    videoPlayer[0], query, referer=referer)
  File "/home/ghislain/bin/youtube-dl/youtube_dl/extractor/brightcove.py", line 327, in _get_video_info
    'brightcove said: %s' % error_msg, expected=True)
ExtractorError: brightcove said: A valid ID was not sent for this player.

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: http://www.bfmtv.com/mediaplayer/video/l-installation-spectaculaire-du-toit-de-la-gare-de-clamart-971789.html

I don't know how to fix this issue, but here is a workaround for people stumbling-on here. Example:
# Get the URL of the brightcove playlist and download it
wget "http://c.brightcove.com/services/mobile/streaming/index/rendition.m3u8?assetId=5675829860001&pubId=5132998232001&videoId=5675822746001" -O playlist.txt
# Download each file from the playlist
cat playlist.txt
wget ...
# Concatenate previously download video files
ffmpeg -i "concat:1.mp4|2.mp4|3.mp4|4.mp4|5.mp4" -c copy -bsf:a aac_adtstoasc BFMTV.mp4

FYI this is still an issue, I'll give a fresh example:
youtube-dl -v "airrace.redbull.com/m/en_US/video/kazan-2018-round-14"
[debug] System config: [u'--prefer-free-formats']
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'airrace.redbull.com/m/en_US/video/kazan-2018-round-14']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2018.09.01
[debug] Python version 2.7.5 (CPython) - Linux-4.18.5-1.el7.elrepo.x86_64-x86_64-with-centos-7.5.1804-Core
[debug] exe versions: avconv v13_dev0-533-gd30719e, avprobe v13_dev0-533-gd30719e, ffmpeg 3.4, ffprobe 3.4
[debug] Proxy map: {}
WARNING: The url doesn't specify the protocol, trying with http
[generic] kazan-2018-round-14: Requesting header
WARNING: Falling back on generic information extractor.
[generic] kazan-2018-round-14: Downloading webpage
[generic] kazan-2018-round-14: Extracting information
[download] Downloading playlist: Kazan 2018 - Round of 14 | Red Bull Air Race
[generic] playlist Kazan 2018 - Round of 14 | Red Bull Air Race: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[brightcove:legacy]<PHONE_NUMBER>001: Downloading webpage
ERROR: brightcove said: A valid ID was not sent for this player.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 792, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 502, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/brightcove.py", line 304, in _real_extract
    videoPlayer[0], query, referer=referer)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/brightcove.py", line 327, in _get_video_info
    'brightcove said: %s' % error_msg, expected=True)
ExtractorError: brightcove said: A valid ID was not sent for this player.


[GUI] Add user - validation of unfilled fields

The message does not clarify that the field to be filled in is username.
Steps to reproduce the problem:

Fill in the Name and Email fields
Click SAVE

Fill in Confirm Email field
Click SAVE

Suggestion: start validation by username field
Affected Version: 61.1-20190423

Test OK.

in English

in Portuguese

Tested on Version: 62.3-20190603


Blacklist app only blocks refreshtoken, not accesstoken

When using the refreshtoken/accesstokens the blacklist app only blocks the issued refreshtoken, not the accesstoken that has been issued with it.

Hmm, I see now why, but that might not be what you want.
Maybe a accesstoken should contain a refreshtoken's jti if blacklisting is active, so you can also verify that against the database.

As I see it, performing a check for every access token which is submitted defeats one of the purposes of using JWTs to begin with: that you don't need to do any DB access to use them properly.  Furthermore, that's one of the very reasons for having refresh tokens.  You perform the DB check against a blacklist for longer-lived, more powerful tokens, but set a small lifetime (5 minutes) or so for access tokens and just deal with the fact that one or two compromised tokens may be floating around for 5 minutes or so after you blacklist a refresh token.  In a real emergency, you can always change the signing key.

Good point


[Event Request] table 900 "Assembly Header" - OnAfterGetDefaultBin

Can you please add OnAfterGetDefaultBin in table 900 "Assembly Header" (similar to how it's provided in Sales Line table)?
 procedure GetDefaultBin()
    var
        Location: Record Location;
        WMSManagement: Codeunit "WMS Management";
    begin
        if (Quantity * xRec.Quantity > 0) and
           ("Item No." = xRec."Item No.") and
           ("Location Code" = xRec."Location Code") and
           ("Variant Code" = xRec."Variant Code")
        then
            exit;

        "Bin Code" := '';
        if ("Location Code" <> '') and ("Item No." <> '') then begin
            GetLocation(Location, "Location Code");
            if GetFromAssemblyBin(Location, "Bin Code") then
                exit;

            if Location."Bin Mandatory" and not Location."Directed Put-away and Pick" then
                WMSManagement.GetDefaultBin("Item No.", "Variant Code", "Location Code", "Bin Code");
        end;

        OnAfterGetDefaultBin(Rec); // NEW EVENT
    end;

 [IntegrationEvent(false, false)]
    local procedure OnAfterGetDefaultBin(var AssemblyHeader: Record "Assembly Header")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10741.


Scrollbar is shown when it shouldn't

Steps to reproduce:

Open the app on an iPad / laptop (screen width > 768px)
Search for a place that shows only 1 protest
Examine at the protest list

Expected result:
Only 1 protest is found so there's no need to show a scroll bar.
Actual result:
A disabled scrollbar is presented:

Fixed in https://github.com/guytepper/1km.co.il/pull/12

Thanks for the detailed report and the fix 🙏

Verified:
No scroll bar:

With scroll bar:


V1 Design | DAO Dashboard Info and Filters

Description
Design out new DAO Dashboard. Currently the screen will be populated with hardcoded data. this will be updated later to use data stored in state

Notes

Issue / Notion doc (if applicable)

Testing

Screenshots (if applicable)
Data shown in Screens are mocked.

@herbig Addressed both concerns

added screenshots to description


⚠ Bofrost.be has degraded performance

In 1121bb3, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1241 ms

Resolved: Bofrost.be performance has improved in a4f1ab1 after 20 minutes.


Simple emergency termination and minor tweaks

Coverage decreased (-0.006%) to 92.392% when pulling b06ab7389d7e8b7a0ba2b04c68cf63349c90dd50 on mprimi:GENIE-603-emergency-termination into cb4a2ffcb33bd971e2fb861bf123688cda4e6409 on Netflix:master.


Multiple issues with custom shaders

heh, pressed enter when i shouldn't have :)

the selected custom shader always stays the same when switching textures. e.g. select texture A, select shader A, then select texture B, shader A is still selected (that might be ok, but i'd expect "RGBA" the default, to be selected), so select shader B, and switch back to texture A, shader B is still selected and THAT's the annoying part.

i created the first custom shader a week ago. today i tried to create a second one and was heavily confused why the "add custom shader button" was grey. i needed quite a few minutes to remember that the dropdown itself is a text field. so i replaced the name of the current shader with something else and then pressed the button, which felt really weird. i'd expect the button to always be available, and ask me for a name when pressed.

is there a way to access the slice/face setting in opengl custom shaders? i couldn't find one and hard-coded the slice i wanted to access in a 3d texture.

that gl_FragCoord should be used to access the input shaders might be obvious to some, but it wasn't to me :) i was used to uv coordinates as well, and when i read in the docs that this parameter exists only for direct3d, i thought "well thanks and what should i do instead?". a sentence like "on openGL, use gl_FragCoord instead" would be nice.

let me know if i should create separate issues.

I think those commits should sort out each point. I'm not sure I want to actually have a pop-up prompt for the shader name but I made it so that the button is always enabled and will throw up a message box and blank out the entry box. That way if you're not clear or forget to enter the name then you'll be reminded.
It's probably less of an issue with 1. fixed because you won't have a custom shader left-over from elsewhere, so the box will start blank.
The last one I think is simply that at the time I wasn't aware of the location matching in GL (I think I was working with by-name matching at link time) so I didn't think there was a good way to define UV inputs in GLSL that would work with a custom shader, like semantic matching in D3D.

wow that was fast, thanks!
i'll verify hopefully tomorrow.

You caught me at just the right time as I was starting work today :smile:.

two remarks: the SliceFace and multisample parameters (and actually, the uv parameter as well) do not appear in the "insert code snippet" menu.
also, the : SV_Target0 in the GLSL code in the last commit seems to be a copypaste leftover?
otherwise i'd say all four issues are fixed!

Yes you are right on both counts :).


Weird Polymer Catalog Bug (Md) -- "paper-toast"

Dear Sirs,
It seems I found a bug in Polymer Catalog. To reproduce, please follow these steps:

Open polymer catalog: https://elements.polymer-project.org/
Choose Md (Paper Elements)
From paper elements select paper-button; switch to demo in left pane
Select "paper-toast" from "other elements"
Now, select any other element, e.g. "paper-menu" -- "paper-toast" disappears from elements catalog.

More weird behavior:

Repeat steps 1-4 above
Now, select "paper-toggle-button"
Now, again select "paper-toast" -- "paper-toggle-button" disappears!
You can toggle between "paper-toast" and "paper-toggle-button" by clicking "paper-toast" element.

Best regards!

This issue is old and I don't think it's still reproducible. Please reopen if you see otherwise.


Send an alert when the list of IDL files changes

Addition/Removal of IDL files to the reports is manual for now. This is mostly on purpose: we don't want to delete IDL files because of a transient network or other error that would make Reffy crash on a given spec.
Given that the list of IDL files crawled by Reffy is also maintained manually, the list of IDL changes is unlikely going to change without human intervention in any case. But then, that does happen, see #10.
Without necessarily changing the logic in place, it would be good to send an alert one way or the other when new IDL files are detected that are not yet tracked in reffy-reports or when the crawl fails to generate an IDL file that is being tracked in reffy-reports.

I believe this was overtaken by https://github.com/tidoust/reffy-reports/pull/39/files#diff-4afa3ab9b172c04f043da226e6b1ecdfR42 which adds new IDL files as they appear, so closing


Put timeout on QPS test server shutdown

Is this okay to merge ? Otherwise this will need to be re-done on the beta branch.


New ames (%xmas) compiles.

Could you not remove arvo in the same diff as other stuff?

You want a different PR, or a different commit?  What is the best way to
restructure this?
On Thu, Dec 8, 2016 at 11:58 AM, Raymond Pasco<EMAIL_ADDRESS>wrote:

Could you not remove arvo in the same diff as other stuff?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/312#issuecomment-265838967, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALyAWf3cw3eyNjFFvW5Ev_7SHjtxLOmks5rGGFJgaJpZM4LINWv
.

Different PR please!


Ship Qt 5 libraries on linux

The program seems to require newer Qt libraries than the ones installed on Ubuntu 16.04. Shipping the required *.so files in the zip would remove the need to install the whole ~2Gb Qt SDK.

It seems the problem goes a bit deeper. In order to use shipped libraries the folder containing them has to be added to LD_LIBRARY_PATH before the program is launched. The problem when you run setcap on the executable LD_LIBRARY_PATH is ignored for security reasons. This also applies for running the program as super user. So it's impossible run the program...

So, does that mean that even if you had a package of the Qt libs, it wouldn't work?
That would be odd and weird, there has to be way to have the required privilege without root being required...

It's only usable if the Qt libs are installed in the system directories. When libs are in another directory they need to be manually added to LD_LIBRARY_PATH. For example with a start.sh:
export LD_LIBRARY_PATH=/media/QT/5.10.1/gcc_64/lib
./Dolphin-memory-engine

The problem is once the program is run as sudo or permissions are modified with setcap LD_LIBRARY_PATH is ignored, always. That means either a ppa is required or the required Qt version has to be set to something preinstalled on ubuntu 16.04. My current workaround is to disable ptrace scope globally with echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope. But this is kinda unsafe and also requires root access.

Have a look at posix_spawn. If you launch dolphin within the program you don't need any special permissions to access it's memory.

Ok so essentially, this means I can't do much for this issue, the setcap is somethign I relaised I needed after to tell after someone had a permission issues I didn't have.  You coudl try without the setcap and if it can't hook to dolphin then you need it.
But yeah, I NEED the permissions setcap gives me so that I can't chnage it.  As for the libs, it's even less reason for me to include them because they need to be properly installed which I rather let distributiuon maintainers or PPA do this part, Windows however, I have no choice so I give the dll.

As with #34 , I won't be supporting an older version of Qt because the readability benefits is big enough for it. As I said, use a PPA or something, a long time has passed since this issue was opened so newer Qt versions should become more accessible, but yeah, I would definitely check for a PPA (I think the travis CI works with a PPA for now so I know it can work).  For now, I am closing this as I am definitely not going to ship the libs with the executable as discussed.


[BUG] App freezes randomly (repost)

Discussed in https://github.com/flet-dev/flet/discussions/2175
Description
Hello there, Few weeks ago I created an issue about this but I was unable to isolate the issue, I created a repository containing just enough code to create my use case.
Very easy, there's few rows, clicks on the "start" buttons that will start fake jobs that only aims to fill the logs and create timers.
Click on the gear, wait few minutes and see that the apps suddenly stops refreshing and NO exception are raised.
Note: if you don't click on the gear, the application will never freeze.
Code example to reproduce the issue:
https://github.com/Soif2Sang/flet_bug
Describe the results you received:
The application stops refreshing, page.update() does not work anymore
Describe the results you expected:
page.update() to keep working
Flet version (pip show flet):
This bug occurs for all flet above 0.7 (I did not test bellow)
Operating system:
Windows & mac suffers from this

I reposted because the issue was transfered to discussion which to me is not the right place for bug

DEBUG:flet_runtime:Sent: 224
DEBUG:flet_core:_process_command: add [] {'to': '_105', 'at': '220'}
DEBUG:flet_runtime:__send: {"action":"pageControlsBatch","payload":[{"action":"addPageControls","payload":{"controls":[{"t":"text","i":"_731","p":"_105","c":[],"at":"220","value":"[11:10:27] A0fvdB8kgZRq8S5o7N7x","weight":"w600"}],"trimIDs":[]}}]}
DEBUG:flet_runtime:Sent: 224
DEBUG:flet_runtime:Message size: 158
DEBUG:flet_runtime:_on_message: {"action":"pageEventFromWeb","payload":{"eventTarget":"page","eventName":"error","eventData":"RangeError: Invalid value: Not in inclusive range 0..219: 220"}}
DEBUG:flet_core:page.on_event: page error RangeError: Invalid value: Not in inclusive range 0..219: 220
DEBUG:flet_core:_process_command: set ['_12'] {'value': '00:00:21'}
DEBUG:flet_runtime:__send: {"action":"pageControlsBatch","payload":[{"action":"updateControlProps","payload":{"props":[{"i":"_12","value":"00:00:21"}]}}]}

I added logging locally and I can see the freeze started right here, when the first error appeared.

@FeodorFitsner can you take a look at it please?

Honestly, I'm a bit concerned of running a code using shutil and subprocess on my machine. I don't have a sandbox environment though.
I see "at":"220" and then RangeError: Invalid value: Not in inclusive range 0..219: 220.
What command do you use to run your program?


Feature Request: Resource View in Scheduler

Hi team,
It would be great if the scheduler had a resource view for booking meeting rooms, projectors, TV's etc.  Available resources could be provided by supplying a list to the control.
View should list all resources available, who has booked the resource and the start and end time of the booking on a daily view basis.
Each resource booking should also have the option of an "all day" booking.

@SteveTeece We also would love to see this implemented. If you want to co-program this, let me know.

I'm also looking for such features, but more for hotel room planner.
My core understanding of the Radzen package backend is a bit lacking, however, I would love to help in any way!


web build crash: vertex shader compliation failed

Godot version
4.1.3 stable
System information
Godot v4.1.3.stable - macOS 13.4.1 - Vulkan (Forward+) - integrated Apple M2 Max - Apple M2 Max (12 Threads)
Issue description
i've put together a demo project of a simple 2d platformer, where the hero slashes slimes
https://github.com/moribellamy/platonic-game
i've exported this game to itch.io.
https://razielx.itch.io/godot-shader-crash
the chrome inspector window gives a ton of output, but this seems like the most important:

Steps to reproduce
load up the game (need to toggle fullscreen to fix the viewport for some reason), slash a slime, and watch your browser crash.
Minimal reproduction project
https://github.com/moribellamy/platonic-game

Could you please copy-paste the entire error? Just below (in the section you cut off) the error reports exactly what the issue is. It should provide enough info for us to identify the cause

This was already reported in https://github.com/godotengine/godot/issues/65696 (see comments at the bottom).

thanks. i'm pretty convinced this is a dupe, so closing accordingly


Add reference to Models package

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: rihacek sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

oooops. working through mslearn tutorials - did not mean to pull req to upstream


[stable/verdaccio] Adding verdaccio deprecation warning

Signed-off-by: Juan Picado @jotadeveloper<EMAIL_ADDRESS>What this PR does / why we need it:
Adding deprecation warning and moved the repository to charts
This will be hosted in helm hub pending: https://github.com/helm/hub/pull/307
Special notes for your reviewer:
CC: @etiennetremel
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/retest-not-required-docs-only

/ok-to-test

/ok-to-test

/lgtm


typo #1

In section 1. Error Analysis, subsection 1.1, screenshot attached

Will address this issue in the next commit in the following matter:


Update CodePush release flow

As a part of the general CodePush overhaul, we've updated the process to publish a new release. For now, both flows are supported, but we'll be updating our clients to only target the new release flow.
This PR does not affect the usage of the codepush release* commands.

I've concerned about why we needed to roll back the swagger update - this would suggest that things are broken and need to be fixed (if we get in to the habit of manually editing the auto-generated files that will cause problems moving forwards).
My gut reaction is to merge this, and then investigate the swagger issue before we release.
Was the swagger update performed production? Or another environment?

This was running against production, and yeah, I agree that we should follow up with a fix to address the autorest generation issues that we ran into during our work for this change.
We won't let this block our PR though as you suggested. We can follow up later with a change that updates the effected parts of the CLI after a swagger client generation.


Edited formatting

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/coordinate-systems-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/coordinate-systems.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/coordinate-systems-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/coordinate-systems.md
:white_check_mark:Succeeded
View

mixed-reality-docs/current-limitations-for-apps-using-apis-from-the-shell.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/coordinate-systems-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/coordinate-systems.md
:white_check_mark:Succeeded
View

mixed-reality-docs/current-limitations-for-apps-using-apis-from-the-shell.md
:white_check_mark:Succeeded
View

mixed-reality-docs/directx-development-overview.md
:white_check_mark:Succeeded
View

mixed-reality-docs/focus-point-in-unity.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/coordinate-systems-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/coordinate-systems.md
:white_check_mark:Succeeded
View

mixed-reality-docs/current-limitations-for-apps-using-apis-from-the-shell.md
:white_check_mark:Succeeded
View

mixed-reality-docs/directx-development-overview.md
:white_check_mark:Succeeded
View

mixed-reality-docs/focus-point-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze-in-unity.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/coordinate-systems-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/coordinate-systems.md
:white_check_mark:Succeeded
View

mixed-reality-docs/current-limitations-for-apps-using-apis-from-the-shell.md
:white_check_mark:Succeeded
View

mixed-reality-docs/directx-development-overview.md
:white_check_mark:Succeeded
View

mixed-reality-docs/focus-point-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze,-gestures,-and-motion-controllers-in-directx.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze-in-unity.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Extend normal text rules

Add pdf rule NewLineInMiddleOfSentenceNoSpacesRule to normal text rules so it can handle cases like https://rubular.com/r/eaNwGavmdo in a normal text

will find a better way to do this in a follow up PR


Add FP to the error described below

AssertionError: No functional parameterization for Dummy Boundary Action 2. To fix this error, add Dummy Boundary Action 2 to the parameters passed to ms.build_implementation. Option can be: ['V1 Dummy Boundary Action 2 Option', 'V2 Dummy Boundary Action 2 Option']


use the original module name: making a new one has model name conflicts

One of these days I'll get it right.
With the old name, we had errors publishing to the registry because there were model name conflicts between two modules (the original name and the new one that didn't mention Jetpack). Ideally, we'll rename this module to not mention Jetpack, since you can now run it without it.

@acmorrow, I'm impatient. I'm going to merge this, and if you don't like it, we can clean up the pieces afterwards.

LGTM


Filter "open/closed" topics during minutesedit view with a checkbox "Only open topics"

As a minutes participant I want to optionally see only open topics of the current meeting minute to quickly spot to-be-discussed topics

[ ] checkbox "Only open topics" behind the ExpandTopics button
[ ] checkbox is initially "de-selected" on opening new minutes
[ ] if checkbox is "true" only open topics are shown in the list
[ ] if checkbox is "true" and a topic is marked "done" - the topic get invisible
[ ] state is realized "per session"
[ ] state is realized with a ReactiveVar

good idea!


mmap support and other features

mmap support

Accepts pandas Series values without recasting

Support for non-integer labels (labeltype is a template parameter)

Index is stored differently in terms of how element_levels_ were stored. Added magic number and version to index files to check.

Other miscellaneous refactoring

_mm_prefetch calls were being identified as memory leaks so they were removed.

@alpinejoe Thank you! It would take some time to review this PR.
I wonder, did you check that performance didn't go down as _mm_prefetch were removed?

I have not.
From what I've read so far, those calls hint the processor to fetch the data to the cache. And by the looks of it, the call is made for the next iteration in the beginning of the current iteration. I'm assuming that's done so the relevant memory blocks could be fetched in parallel while the ALU is in busy with the current iteration. But that also means the last iteration of the loop fetches arbitrary memory.
I wonder if adding a condition or moving those instructions to another loop would give an equal performance.
Let me know if you want me to revert that change as-is.

@alpinejoe Thank you! I'll run the performance tests and will let you know the results.

@alpinejoe I've started testing the branch. Some results should be overnight.
I've noticed the python interface have changed, specifically, the output is not numpy, but python.
I wonder, what is the rationale for such behavior?

Hm. So far is seems to be about 40% slower...

It is overall slower. I doubt this can be explained only by prefetches.
What do you think might be the other reasons for the slowdown?

I've noticed the python interface have changed, specifically, the output is not numpy, but python.

You mean output of knn_query? It should still be a numpy array, although it's a structured array now. This allows the python interface to create a numpy buffer and pass the reference to the algorithm, avoiding copying from vector/priority queue to numpy array.
You can still extract the label/distance in the traditional python [] syntax or use a view like this:
dtype = np.dtype({
    'names': ['label'],
    'formats': ['<u8'],
    'offsets': [8],
    'itemsize': 16
})
labels = knn_results.view(dtype=dtype)  # labels is a non-contiguous 2D array

I have also done other memory optimizations, but can't imagine any of them making things slow by 40%.
Running the python tests was about 3x faster for develop vs master, even though develop tests include additional mmap tests. What are the performance tests you ran? Was it SIFT 200M? If not, can you point me to a script/gist?

@alpinejoe I ran ann benchmark.
But probably 200M sift would be a better test (1M subset should be more than enough), unless the slowdown is caused by python bindings. I can check the slowdown there.

Hm. The sift 200m does not seem to work on the updated branch... Maybe it makes sense to just do random a data test using the python interface. ann benchmarks will probably do, but they are slow to test. I can share a faster script.

@yurymalkov you should be able to run the sift tests now.
Absence of _mm_prefetch calls were indeed causing a slow-down, so I've added them back. The performance jump is worth the read buffer-overflow I guess. Last few lines of the sift tests:
master branch:
300	0.9965	819.016 us
340	0.9976	921.286 us
380	0.9979	988.705 us
420	0.9981	1080.55 us
460	0.9984	1176.99 us
Actual memory usage: 428 Mb

develop without _mm_prefetch:
300	0.9965	960.721 us
340	0.9971	1071.55 us
380	0.9975	1171.02 us
420	0.9977	1290.54 us
460	0.9979	1400.13 us
Actual memory usage: 423 Mb

develop with _mm_prefetch:
300	0.9963	774.196 us
340	0.9971	867.445 us
380	0.9976	953.785 us
420	0.9979	1041.6 us
460	0.9983	1125.08 us
Actual memory usage: 423 Mb

Let me know if you have that faster script ready, I can try running that as well.

@alpinejoe and @yurymalkov could anybody point me to the exact point where buffer overrun is happening?

@alpinejoe Ok. Thanks! I would need to find and revive that script.
@searchivarius The code prefetching the next elements before the current ones and also does it for the last element in the loop, so it can go out of bounds of the memory.
It does not seem like a big deal though, potentially it can lead to loss of performance (https://stackoverflow.com/questions/40128151/what-happens-if-an-invalid-address-is-prefetched) but not sure if it the case here.


ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 256, 1, 1])

When I train my coco-style dataset  by  use :   bash train_coco.sh
then the errors as follows:
Namespace(backbone='resnet', base_size=513, batch_size=4, checkname='deeplab-resnet', crop_size=513, cuda=True, dataset='coco', epochs=10, eval_interval=1, freeze_bn=False, ft=False, gpu_ids=[0], loss_type='ce', lr=0.01, lr_scheduler='poly', momentum=0.9, nesterov=False, no_cuda=False, no_val=False, out_stride=16, resume=None, seed=1, start_epoch=0, sync_bn=False, test_batch_size=4, use_balanced_weights=False, use_sbd=True, weight_decay=0.0005, workers=4)
loading annotations into memory...
Done (t=0.00s)
creating index...
index created!
loading annotations into memory...
Done (t=0.00s)
creating index...
index created!
Using poly LR Scheduler!
Starting Epoch: 0
Total Epoches: 10
0%|                                                     | 0/1 [00:00<?, ?it/s]
=>Epoches 0, learning rate = 0.0100,                 previous best = 0.0000
Traceback (most recent call last):
File "train.py", line 306, in
main()
File "train.py", line 299, in main
trainer.training(epoch)
File "train.py", line 104, in training
output = self.model(image)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in call
result = self.forward(*input, **kwargs)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 150, in forward
return self.module(*inputs[0], **kwargs[0])
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in call
result = self.forward(*input, **kwargs)
File "/home/dachen/Music/pytorch-deeplab-xception/modeling/deeplab.py", line 30, in forward
x = self.aspp(x)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in call
result = self.forward(*input, **kwargs)
File "/home/dachen/Music/pytorch-deeplab-xception/modeling/aspp.py", line 70, in forward
x5 = self.global_avg_pool(x)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in call
result = self.forward(*input, **kwargs)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/modules/container.py", line 92, in forward
input = module(input)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in call
result = self.forward(*input, **kwargs)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 81, in forward
exponential_average_factor, self.eps)
File "/home/dachen/conda/lib/python3.7/site-packages/torch/nn/functional.py", line 1666, in batch_norm
raise ValueError('Expected more than 1 value per channel when training, got input size {}'.format(size))
ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 256, 1, 1])
what should i do ?

@jfzhang95@lyd953621450 Hi, I have faced the same problem. Do you train your own datasets? I think the key is the label.

@lyd953621450 @HuangLian126 I think the reason is that the BatchNorm in the global_avg_pool requires the batch size to be larger than 1. If you have already set a batch size larger than 1 and still faces this problem, that is probably because the remainder of the training data number divided by the
batch size is 1, which leads to the fact that there can always be one single training data in one epoch. In such a case, I suggest you set the drop_last flag in the dataloader as true to drop this last single training data.

@hlwang1124 i have same issue,
how can i set the drop_last flag as true?,
also if  i  have problem in  my dataset, can dataset trigger this issue??

python train.py --backbone xception --lr 0.0001 --epochs 10 --batch-size 2 --gpu-ids 0 --checkname deeplab-xception
Hi, I still got this error when my batch size is 2. Have you solved this problem? @YadongLau @kimsu1219 @HuangLian126


Question: how to implement high availability of IP in nodes using etc?

Bug reporting
A good bug report has some very specific qualities, so please read over our short document on reporting bugs before submitting a bug report.
To ask a question, go ahead and ignore this.

I wanted to know similar to keepalived how to achieve IP high availability using etcd

Probably post this to our mailing list. github is for issue tracking, not general high level questions.


Verifying LSA protection - missing info on how to display Windows Logs

Section 'Verifying LSA protection' lacks information on how to show Windows Logs - that is by running 'Event Viewer'.
I am regular Windows user. Windows 11 keeps complaining about LSA being off despite turning it On and restarting. So I have no clue how to display Windows Logs to ensure that LSA is actually on. Knowing that I will find Windows logs in application 'Event Viewer' would be helpful.

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

ID: 7b04bc4d-9435-cdbc-429f-2433ada7bd37
Version Independent ID: 5c902397-b2e7-4435-2b37-a57919434c9e
Content: Configuring Additional LSA Protection
Content Source: WindowsServerDocs/security/credentials-protection-and-management/configuring-additional-lsa-protection.md
Product: windows-server
Technology: security
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

The sub-link would be
https://github.com/MicrosoftDocs/windowsserverdocs/blob/main/WindowsServerDocs/security/credentials-protection-and-management/configuring-additional-lsa-protection.md#verifying-lsa-protection
I also echo the complaint that this makes little sense:

To discover if LSA was started in protected mode when Windows started, search for the following WinInit event in the System log under Windows Logs:
12: LSASS.exe was started as a protected process with level: 4

Does the above mean it is not started?
Additionally, it might be useful to provide a link to documentation on using the event viewer.

Are you looking in Windows Logs/System Log section? Shouldn't be in any log labeled as LSA which is why I'm asking. I think that's the problem you're having.

Hello @pakanek,
Thank you for contacting Microsoft. We value your feedback.
We've made a documentation update that clarifies how to search Event Viewer for the event that indicates LSASS.exe was started as a protected process. The update will be live after the next business day.
Also, the issue of Windows 11 incorrectly reporting LSA protection status was caused by a Windows Update in March 2023, but an July 2023 update fixed the problem. For more information, see "Local Security Authority protection is off" with persistent restart.
We'll now be closing this thread. Thanks again for your feedback, and have a most pleasant day.
#please-close


Align content with GDS review

GDS plan to review the content in the manual and the content on GOV.UK just to make sure everything is aligned. Once the review is completed I will schedule in any updates.

Since 2.0 the guidance is aligned.