TypeError when running mdclient from guide examples

Working through the examples I came across the following error in chapter 4 (majordomo pattern). Python version is 3.6.5 and:

Current libzmq version is 4.1.6
Current  pyzmq version is 17.0.0

% python mdclient.py
Traceback (most recent call last):
  File "/Users/twry/development/zguide/examples/Python/env/lib/python3.6/site-packages/zmq/sugar/socket.py", line 426, in send_multipart
    memoryview(msg)
TypeError: memoryview: a bytes-like object is required, not 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "mdclient.py", line 29, in <module>
    main()
  File "mdclient.py", line 18, in main
    reply = client.send("echo", request)
  File "/Users/twry/development/zguide/examples/Python/mdcliapi.py", line 67, in send
    self.client.send_multipart(request)
  File "/Users/twry/development/zguide/examples/Python/env/lib/python3.6/site-packages/zmq/sugar/socket.py", line 433, in send_multipart
    i, rmsg,
TypeError: Frame 0 ('MDPC01') does not support the buffer interface.

Now I'm stuck with this. Any help would be much appreciated.

Hi
I think your problem is related to what described in "Bytes and strings" paragraph here: https://pyzmq.readthedocs.io/en/latest/pyversions.html
try putting b in front of strings, such as b'echo' or encoding them :
reply = client.send(b"echo", request.encode())

Right, I had to make changes to MDP.py and mdcliapi.py, too. Now I'm not getting no error message any more but also no output, will need to debug some more... thanks!

libzmq-4.2.5
pyzmq-17.1.2
Python-3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
Same for me. This is actually an issue with the examples in the zguide not being compatible with Python3 and not pyzmq itself.
Created new issue for the zguide zguide-issue-#747
You have to find all strings that are sent through and change them to bytes.
e.g. in MDP.py
W_READY         =   "\001"

becomes
W_READY         =   b"\001"

Other things to search for are empty strings ('' or "") change to (b'' or b"")


Add course trait

Add course as a trait that can be added to contacts.
For now, there is only one course that can be added. The ability to add multiple courses will be implemented after this PR is approved.

Does anyone know what the errors and failed tests in the CI build are referring to? The tests are passing on my device but not on GitHub checks.


[Question] how to include an image in markdown using external absolute path

Hi,
I've a case where I use https://docc-theme.netlify.app/
and I want to load an image from a directory outside the the project dir
something like ![](/home/hamdy/sttic/my_image.png)
the above is not working and image src is set to absolute path and image is not set
How can I accomplish this?
Thanks

I think it might not be relevant to ask this question here! closing


Simplify treatment of property names

Coverage decreased (-7.0e-05%) to 99.978% when pulling d55a03cd12bd6b1a70b43586cf6a336248bb10a0 on jugglinmike:identifier-cleanup into 836df698d35da4edd575d30b0cad315738140f2c on jshint:v2.12.0.

Coverage decreased (-7.0e-05%) to 99.978% when pulling d55a03cd12bd6b1a70b43586cf6a336248bb10a0 on jugglinmike:identifier-cleanup into 836df698d35da4edd575d30b0cad315738140f2c on jshint:v2.12.0.


Let [MartenCommandWorkflow] work with commands without Version

In some cases the command handler should be able to start with the latest version of the aggregate and not provide a specific expected version. The handler would validate if the command is applicable to that state. [MartenCommandWorkflow] requires the expected version to be provided in the command as the Version property. However, it is still very valuable and applicable in that scenario as it would make sure that while the command is handled the state of the aggregate is not changed before committing.
Would it be possible in case the command doesn't have the Version property to generate the code with the FetchForWriting<> method without the expectedVersion parameter?
Task<IEventStream<T>> FetchForWriting<T>(string key, CancellationToken cancellation = default (CancellationToken))

Got it.
duplicate with #191
Two reports moves this up the priority list...

Thanks! Sorry, was trying to search by MartenCommandWorkflow and couldn't find any.


Add additional tests to ensure 100% test coverage

Related issues (if any): none
Type of request: 🔨Refactoring / 🐛Bugfix
Proposed milestone: 🥈Minor
Describe changes: Adding additional edge-case tests to reach 100% code coverage

Alright, looks like I have 4 more tests to write in the morning, but then I'll merge this to master along with the various little bugfixes that it contains. Will likely become 1.2.0, perhaps with the addition of #9 as well.


Update DaprBot Docs - Available Github Commands

The daprbot documentation is a little behind. There are a few dapr/* repos that have the /assign Github command available that is not noted in the documentation.
Please check all the repos: docs (yes, this one), quickstarts, cli, dapr, *-sdk. There will be a dapr-bot.js and/or a dapr-bot.yml in the /.github/ probably in a /.github/scripts or /.github/workflows. Any repo that has the /assign should be noted in the documentation.
Also, please link to the daprbot documentation in the contributing.md in this repo so users know what commands they may run in this repo.

Can you assign this to me?I  am joining from GHC OSD @hhunter-ms

Hey @srilasya02 Hope you are enjoying the Grace Hopper Conference Open Source Day event! Happy to have you here with us. Please let us know if you need any help along the way 😁


entry point restricting class member documentation

I believe this is similar to both issue 186 and issue 172 but it may warrant a ticket itself.
My goal is to generate docs for a library with a single entry point that documents the public methods and properties (from the root's perspective) while excluding modules that may be used internally.
For example (in the snippet below) if Main is to be my entry point I would want thing1 in the Properties section of Main's generated documentation to be a link to the Thing1 class. This is the case if I generate the docs without the entryPoint flag. The issue is that the unwanted Thing2 is also documented (even with --excludePrivate it ends up in the Externals section). If I generate with with the entryPoint flag the Thing1 link in the Properties section just becomes a link back to the main page.
Is there some combo of flags / settings that I am overlooking that allows me to have docs generated from an entry point's perspective allowing links to properties without documenting all Externals? Apologies for taking your time if this is already possible!
An example repo
// main.ts
import Thing1 from "./thing1";
import Thing2 from "./thing2";

export default class Main {
    thing1: Thing1;

    constructor() {

        // used internally, no need to document this
        let other = new Thing2();

        // this is user facing, should be documented
        this.thing1 = new Thing1();
    }
}

// Thing1.ts
export default class Thing1 {
    pub() {
        console.log('thats public');
    }
    private prv() {
        console.log('thats private');
    }
}

// Thing2.ts
export default class Thing2 {
    fn() {
        console.log('so hidden');
    }
}

Would adding a comment with @hidden to the Thing2 class and using the --stripInternal flag help? (see #62, #104, #198, and #364 for some info since I'm not sure where it's documented)
/**
 * @hidden
 */
export default class Thing2 {
    fn() {
        console.log('so hidden');
    }
}

Thanks for following up!
After looking through the tickets and trying different combos of @hidden, @internal, and --stripInternal I have still not been able end up where the thing1 link works without the thing2 link showing up. I tried @hidden at both the module and instance level. It looks like the @hidden tag will keep thing2 from being in the content section but not the menu section (again, unless I have just not used the correct flag configurations...) For example:

Notice that the content section is empty (the menu renders all the way to the left) Then when it correctly documents thing1 all is well:

These particular screen shots were form docs generated with the following (though I tried many combos with internal and in the Main module as well):
typedoc  --out docs-all src --readme none  --mode modules --stripInternal --excludePrivate
/**
  * @hidden
  */
export default class Thing2 {

    /**
     * @hidden
     */
    fn() {
        console.log('so hidden');
    }
}

Is there perhaps something that I am missing?
Thanks again for taking a look!

Related to #250

would be nice to have such behavior :)

Closing in favor of #639


paperless-ngx: running stack is shown as inactive

⚠ Please verify that this bug has NOT been reported before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
paperless-ngx is up and running fine. DockGE reports the stack as inactive, even when restarted from command line.
root@wyse-5070-wan-docker:/opt/stacks/paperless-ngx# cat compose.yml
version: "3.4"
services:
  broker:
    image: docker.io/library/redis:6.0
    restart: unless-stopped
    volumes:
      - ./redis_data:/data

  db:
    image: docker.io/library/postgres:13
    restart: unless-stopped
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - gotenberg
      - tika
    ports:
      - 8000:8000
        #    healthcheck:
        #      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
        #      interval: 30s
        #      timeout: 10s
        #      retries: 5
    volumes:
      - ./paperless_data:/usr/src/paperless/data
      - ./paperless_media:/usr/src/paperless/media
      - ./paperless_export:/usr/src/paperless/export
      - ./paperless_consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998

  gotenberg:
    image: docker.io/gotenberg/gotenberg:7.4
    restart: unless-stopped
    command:
      - "gotenberg"
      - "--chromium-disable-routes=true"

  tika:
    image: ghcr.io/paperless-ngx/tika:latest
    restart: unless-stopped

volumes:
  paperless_data:
  paperless_media:
  postgres_dataa:
  redis_data:

👟 Reproduction steps
docker-compose up -d
Wait 60 secs
👀 Expected behavior
Stack status shown as active as all other stacks
😓 Actual Behavior
Stack status shown as inactive as only exception
Dockge Version
1.4.2
💻 Operating System and Arch
Devuan Daedalus (Debian without systemd)
🌐 Browser
Vivaldi
🐋 Docker Version
docker 20.10.24+dfsg1
🟩 NodeJS Version
No response
📝 Relevant log output
root@wyse-5070-wan-docker:/opt/stacks/paperless-ngx# docker ps | grep paper
03d2cd7586e9   ghcr.io/paperless-ngx/paperless-ngx:latest   "/sbin/docker-entryp…"   15 minutes ago   Up 15 minutes (healthy)   <IP_ADDRESS>:8000->8000/tcp                        paperless_webserver_1
2a1dde83983a   ghcr.io/paperless-ngx/tika:latest            "/bin/sh -c 'exec ja…"   15 minutes ago   Up 15 minutes             9998/tcp                                      paperless_tika_1
45fe588780d1   postgres:13                                  "docker-entrypoint.s…"   15 minutes ago   Up 15 minutes             5432/tcp                                      paperless_db_1
424cd693d10c   redis:6.0                                    "docker-entrypoint.s…"   15 minutes ago   Up 15 minutes             6379/tcp                                      paperless_broker_1
c0f45ce8ced7   gotenberg/gotenberg:7.4                      "/usr/bin/tini -- go…"   15 minutes ago   Up 15 minutes             3000/tcp                                      paperless_gotenberg_1

Have you tried without the version: "3.4" line?
It has been removed from compose anyways.

I have the same problem, removing the version line does not fix it.
I also see a "paperless" stack active, but not managed by dockge (and I have no other paperless stack):

Same here.
No change on the version-line, seeing an additional paperless stack which changes status  as well.

Not an issue here

Is this paperless or Paperless-ngx?
BlueMail for Android herunterladen
Am 9. Apr. 2024, 17:28, um 17:28, truthsword @.***> schrieb:

Not an issue here

--
Reply to this email directly or view it on GitHub:
https://github.com/louislam/dockge/issues/474#issuecomment-2045482426
You are receiving this because you authored the thread.
Message ID: @.***>

Is this paperless or Paperless-ngx?

ngx ... same as the thread

I changed the name  in the .env file COMPOSE_PROJECT_NAME=paperless in my docker-compose folder from paperless to paperless-ngx (thats the name of my container in the docker-compose.yml). After deleting the containers and new docker compose up -d its fine now in dockge!

Just FYI... but you have other issues ... for some reason you have defined docker volumes (which aren't used) while you also have defined bind mount volumes. You also have a type on a docker volume, but as that presumably is not used, it is just noise. A check of your compose file using docker compose config should have flagged these things. Good luck.

Yes , i had unused docker volumes. I removed them now and reverted the .env back to paperless and created new containers. Same Output with the inactive paperless-ngx in dockge. I changed it back to paperless-ngx in the .env and its now working again. At least i have a cleaner compose file now..

I had this issue and the problem was that the folder names for my stacks were capitalized (e.g., "Immich").  Renaming them to start with lower-case letters solved the problem.  ::shrug::


Start working on videos.

Since the board detection is kind of done it's time to try it on videos.
Here are a few examples:

[ ] static camera -- not of hight quality though here
[ ] non-static camera -- nice video, kind of the quality we should aim for here
[ ] non-static camera -- again, quite a nice video, not that much movement too here
[ ] another nice video -- some movement in the end here
[ ] pretty much anything from this playlist -- that would be quite an achievement here
[ ] extra long, pretty static video -- kind of the one we should be able to process in the end here

Do let me know if you need some of these videos in some sutiable format, that can be done fairly easily.

Seems like this might be a good source of static videos too:
https://www.youtube.com/watch?v=LhxU1Y50N-8


allow puppetlabs/concat 8.x

Not sure how to fix this, module does work with concat 8.0.0, but concat dropped support of puppet 6, so, pipelines fail there. I imagine this will be common since puppetlabs drops puppet 6 support


chore: use test sessions endpoint

I hereby confirm that I followed the code guidelines found at engineering guidelines
Affected Components

[x] CLI
[ ] Create CLI
[ ] Test
[ ] Docs
[ ] Examples
[ ] Other

Notes for the Reviewer
To enable better grouping of check runs, we've added a new POST /next/test-sessions/run endpoint which accepts a batch of check runs. This PR migrates the CLI to use the new API.
Some changes were needed around error handling. Previously one POST /next/checks/run/{browser,api} request could file while the others succeed. Now, there's only a single POST /next/test-sessions/run that could fail. To handle this, this PR introduces a new ERROR event to the check-runner and a corresponding onError() handler in the result reporter. If the  POST /next/test-sessions/run fails, the CLI stops the npx checkly test execution and logs the error. The main case is when the account doesn't have sufficient credit.

Testing
To make the tests pass, we must merge the the backend first: https://github.com/checkly/checkly-backend/pull/3924

Let's merge this when you have the DB layer integrated into the BE. It is missing some optional fields that will become more clear when the DB layer is there

I agree, good point 👍 Let's wait until more things are settled before merging this. Then we have more ability to make breaking changes.

@clample @umutuzgur , this is ready for review. We must to merge https://github.com/checkly/checkly-backend/pull/3924 to make the tests pass including the repoInfo payload.


[RFC] Design Proposal routing algorithm for splitting shards In-place

Introduction
In RFC https://github.com/opensearch-project/OpenSearch/issues/12918, we discussed potential approaches for splitting of a shard in-place and requested feedback on the same as well as use cases which may need to be additionally addressed while designing In-Place shard split. We published the design for splitting a shard in-place in issue https://github.com/opensearch-project/OpenSearch/issues/13923 where we raised the need for devising a mechanism to route operations on child shards and explained the operation routing briefly. In this issue, we will talk about how operations are routed in OpenSearch, delve into different operation routing approaches for in-place shard splitting, discuss their pros and cons and finally add benchmark results comparing the performance of each approach.
Operation Routing In OpenSearch
Currently, document routing algorithm in OpenSearch is governed by the following formulae
routing\_factor(RF) = \frac{num\_routing\_shards(RS)}{num\_primary\_shards(P)}$$

shard\_num = \frac{hash(\_routing) \% num\_routing\_shards(RS)}{routing\_factor(RF)}$$

Here,shard_num is effective routing value which is derived from document’s _id which is termed here as _routing. Custom routing patterns can be implemented by specifying a custom routing value per document.
Let’s try to understand the algorithm visually

Our hash function i.e. murmur hash has a practical key range from $0$ to $2^{31}−1$ but ideally we restrict the range to 1024 by default i.e. the allowable max number of shards on a single node so that if we divide our hash space to 1024 parts, each part can be assigned to a single shard.
When we create P primary shards, document hash space needs to be divided into equal parts. The default upper limit of max routing number of shards i.e. 1024 may not be divisible by P which could result in unequal hash space distribution.
The value 1024 is nothing but the default number of partitions of the document hash space which is frozen during index creation. A shard of an index is assigned a subset of partitions. For e.g. if an index is created with 8 shards then each shard consists of 128 partitions.  Any scaling of shards from x to y in resize actions like shrink index and split index cases will happen based on the number of partitions. For uniform distribution of hash space, all shards should have equal number of partitions otherwise it would result in a collision of keys according to pigeonhole principle. Therefore, number of partitions would be the highest multiple of P less than or equal to 1024. For e.g., for an index consisting of 5 shards, number of partitions assigned to each shard would be 204. This number is called as the number of number of routing shards of an index.
In resize action of OpenSearch like splitting an index where a new index is created and recovered from an existing index, the number of partitions are recalculated. As we saw earlier that number of partitions should always be equally distributed among shards, number of shards of the new index can only be a number exactly divisible by number of shards of the existing index. In addition, new number of shards should be less than the routing number of shards of existing index. Mathematical relation between at most n splits of a shard of an index having P primary shards and upper limit of routing shards equal to 1024 can be expressed as $2^n*P < 1024$.
Similarly, number of partitions assigned on each shard can be expressed as: $num\_routing\_shards(RS)/num\_primary\_shards(P) = (2^n*P)/P = 2^n$
This  is called $routing\_factor(RF) = 2^n$
Once, we have RS and RF then its easy to figure out the shard number by figuring out the shard in which the hash of routing id should lie in, given by $shard\_id = \frac{hash(\_routing) \% RS}{RF}$
Describe the solution you'd like
Operation routing design requirements for in-place shard-split:

There shouldn’t be any data loss before, during or after a shard is split
The key space or the hash range which parent shard serves should be split/scaled in a way that it is uniformly distributed among new shard(s) and division should be mutually exclusive

Approaches
We will go over two approaches and discuss how each of them can effectively route an operation on child shards.
Approach 1 - Routing using Shard Hash space [Recommended]
In this approach each seed shard(shards present at the time of index creation) is assigned a hash space. We are using murmurhash3_x86_32 algorithm to calculate hash of _routing before deducing the respective routing shard. It means that absolute hash values could only lie within 0x00000000 - 0xffffffff range (signed int). Therefore, each seed shard is assigned a hash space from 0 to 2^32 -1 . Whenever a shard split happens its hash space gets divided equally between the child shards. Let’s consider a mental model where shards are arranged according to the start and end values of acceptable hash values.
If split 1:4 is performed on a primary shard , upcoming key space partition will look like:

In this case, all docs getting hash between 0x00000000 - 0x3FFFFFFF will get route to child shard 0, hash between 0x40000000 - 0x7FFFFFFF will get to child shard 1 and so on.

We can further split any of the child shard for e.g. say we split the child shard 2 above into two shards then hash space partition will look like:

In this further split, child shard 2 will cease to exist to make way to shard 4 and 5 which will serve ranges 0x80000000 - 0x9FFFFFFF and 0xAFFFFFFF - 0xBFFFFFFF respectively. Information of these “high” and “low” values needs to be saved in the cluster state.
Note that high value of key space of each primary shard is always increasing, so, one optimization we'll perform is binary searching over these values to efficiently get the routing_shard. But, the necessary information needs to be pre-computed and stored in the cluster state as well otherwise benefits of binary search would gravely out-weight construction.

Mathematically routing algorithm can be defined as follows:
$routing\_factor(RF) = \frac{num\_routing\_shards(RS)}{num\_primary\_shards(P)}$
$seed\_shard\_id = \frac{hash(\_routing) \% num\_routing\_shards(RS)}{routing\_factor(RF)}$
Note: Each seed shard maintains its own hash space and the distribution of the hash space in child shards
A hash space is defined as $Range_i = [l_i, r_i)$
Each shard has its own hash range and they are comparable i.e. $Range_i < Range_j$ <=> $l_i < l_j$
$seed\_shard\ranges = Sorted{Range{child\shard_1},Range{child\_shard_2}, ... }$
Objective: To find the hash range which contains our hash value.
Since, shard ranges are sorted we can find a range with starting point just less than or equal to hash value by using binary search.
We define a function: $ceil({x_1, x_2, x_3 ....}, x)$ which outputs index i such that value $x_i \in {x_1, x_2, x_3, ...}$ just less than equal to $x$ and is based on binary search with a complexity of $O(log_2(len({x_1, x_2, x_3,....})))$
shard\_id = ceil(\{ Range_{child\_shard_1}, Range_{child\_shard_2}, ... \}, hash(\_routing))

Advantages:

Does not limit the number of times a shard can be split in an existing index
Easier to understand and maintain
Faster if depth of split is higher than logarithmic base 2 of number of shards. For e.g., if a shard gets split 3 times and at each level 2 child shards are produced then this approach will perform better as compared to the previous approach since logarithmic base 2  of 4 shards i.e. 2 is lesser than the depth i.e. 3.

Disadvantages:

Performs slow if depth of splits is lower than logarithmic base 2 of number of shards.

Implementation details:
In Opensearch we'll maintain the keyspace for each shard as SplitMetadata which keeps a map of shard id and range assigned to the specific shard. SplitMetadata also contains a flat sorted set of keyspace ranges assigned to each split shard per seed shard which makes the lookup of hash to shard id it belongs a much efficient operation by using binary search. We keep track of only those shards which have been split or are created as a result of split in SplitMetadata  and therefore in case of no split there’s no overhead increase in index metadata. During shard split i.e. when recovery is happening we don’t keep child shard keyspace ranges in the sorted set but maintain them in an ephemeral list of keyspace ranges in the parent shard metadata. Once, the recovery is complete and shard split is marked completed we remove the ephemeral child shard IDs and add it to our maintained sorted set for routing of documents.
Approach 2 - “Recursive Routing ”
Based on our current routing algorithm in opensearch, routing terms are expressed as follows:
$P = num\_initial\_primary\_shards$
$n={floor(log_2(1024/P))}$
$RF = 2^n$
$RS=RF*P$
$hash\_value = hash(\_routing)$
Consider, shard $p_i$ gets split into $P_i$ shards, we’ll calculate new routing parameters i.e. RS & RF for the child shards
$RF_i = 2^{n - log_2(P_i)}$
$RS_i = {RF_i}*P_i$
Now, to route the document, we’ll first find out which shard out of initial shards the doc will get routed to using the following equation. Assume, the doc got routed to shard $p_i$ then
$p_i = \frac{{hash\_value}\%{RS}}{RF}$
Since, shard $p_i$ has been split into $P_i$ shards, we’ll use the new routing parameters to calculate the actual shard($p_ij$) to which the doc will gets routed
$p_{ij} = \frac{hash\_value\%RS_i}{RF_i}$
This pattern will continue for further splits. Say, the shard $p_ij$ gets split into $P_j$ shards then we’ll get the new routing parameters as:
$RF_j = 2^{floor(log_2(\frac{RF_i}{P_j}))}$
$RS_j = {RF_j}*P_j$
At runtime the doc will get routed to shard $p_{ijk}$
$p_{ijk} = \frac{hash\_value\%RS_j}{RF_j}$
Base conditions:
if $RF_k==1$ for any shard $p_k$ then we won’t allow further splits for that shard
Also, if some shard $p_k$ is the terminal shard i.e. it hasn’t been split then the above described routing algorithm will terminate at that shard
High level visual representation
In the following figure, partitions are getting distributed evenly and we’re maintaining the routing parameters at each level.

Advantages:

Faster in cases where depth of splits is lesser than logarithmic base 2 of number of shards.

Disadvantages

Limit the number of times a shard can be split in an existing index which was created before the OS version which will support in-place shard split at 1024 i.e. default value of routing shards
Performs slow if depth of splits is higher than logarithmic base 2 of number of shards.
Quite complex to understand and maintain.

Benchmarks

Setup:
HostType: m4.2xlarge
OS: Amazon Linux 2 x86_64
region: us-west-2
vCPUs: 8
Memory: 32Gb
Architecture: x86_64

Parameters:
Number of seed shards: 1
Number of splits per shard: 2
Depth i.e. total number of split operations performed per seed shard - 1 : [0,10)
Number of documented routed(numDocs): [0,100000]
Benchmark Mode: avgt i.e. average time taken per routing operation in nanoseconds
Number of threads used: 1

Approach 1 → DocRoutingBenchmark.routeDocsRecurring
Approach 2 → DocRoutingBenchmark.routeDocsRange
On a high level we split a single shard repeatedly into two and compare latency degradation at different depths which increases with number of splits

Benchmark numbers for Approach 1 Vs Approach 2

Benchmark
depth
numDocs
Mode
Score
Units

DocRoutingBenchmark.routeDocsRange
0
1
avgt
484.304
ns/op

DocRoutingBenchmark.routeDocsRange
0
100
avgt
6922.807
ns/op

DocRoutingBenchmark.routeDocsRange
0
1000
avgt
74009.181
ns/op

DocRoutingBenchmark.routeDocsRange
0
10000
avgt
763362.939
ns/op

DocRoutingBenchmark.routeDocsRange
0
100000
avgt
8378460.97
ns/op

DocRoutingBenchmark.routeDocsRange
1
1
avgt
496.923
ns/op

DocRoutingBenchmark.routeDocsRange
1
100
avgt
7432.15
ns/op

DocRoutingBenchmark.routeDocsRange
1
1000
avgt
82045.71
ns/op

DocRoutingBenchmark.routeDocsRange
1
10000
avgt
888808.969
ns/op

DocRoutingBenchmark.routeDocsRange
1
100000
avgt
9252085.75
ns/op

DocRoutingBenchmark.routeDocsRange
2
1
avgt
488.046
ns/op

DocRoutingBenchmark.routeDocsRange
2
100
avgt
7348.704
ns/op

DocRoutingBenchmark.routeDocsRange
2
1000
avgt
86551.268
ns/op

DocRoutingBenchmark.routeDocsRange
2
10000
avgt
919804.381
ns/op

DocRoutingBenchmark.routeDocsRange
2
100000
avgt
9889578.54
ns/op

DocRoutingBenchmark.routeDocsRange
3
1
avgt
488.343
ns/op

DocRoutingBenchmark.routeDocsRange
3
100
avgt
7621.063
ns/op

DocRoutingBenchmark.routeDocsRange
3
1000
avgt
95474.99
ns/op

DocRoutingBenchmark.routeDocsRange
3
10000
avgt
1025523.67
ns/op

DocRoutingBenchmark.routeDocsRange
3
100000
avgt
10797462.1
ns/op

DocRoutingBenchmark.routeDocsRange
4
1
avgt
494.31
ns/op

DocRoutingBenchmark.routeDocsRange
4
100
avgt
8065.714
ns/op

DocRoutingBenchmark.routeDocsRange
4
1000
avgt
103151.209
ns/op

DocRoutingBenchmark.routeDocsRange
4
10000
avgt
1099497.06
ns/op

DocRoutingBenchmark.routeDocsRange
4
100000
avgt
11711143.9
ns/op

DocRoutingBenchmark.routeDocsRange
5
1
avgt
488.817
ns/op

DocRoutingBenchmark.routeDocsRange
5
100
avgt
8279.029
ns/op

DocRoutingBenchmark.routeDocsRange
5
1000
avgt
109389.782
ns/op

DocRoutingBenchmark.routeDocsRange
5
10000
avgt
1183312.2
ns/op

DocRoutingBenchmark.routeDocsRange
5
100000
avgt
12082835.5
ns/op

DocRoutingBenchmark.routeDocsRange
6
1
avgt
502.501
ns/op

DocRoutingBenchmark.routeDocsRange
6
100
avgt
8583.495
ns/op

DocRoutingBenchmark.routeDocsRange
6
1000
avgt
118236.136
ns/op

DocRoutingBenchmark.routeDocsRange
6
10000
avgt
1252016.38
ns/op

DocRoutingBenchmark.routeDocsRange
6
100000
avgt
13199143.9
ns/op

DocRoutingBenchmark.routeDocsRange
7
1
avgt
497.333
ns/op

DocRoutingBenchmark.routeDocsRange
7
100
avgt
9107.973
ns/op

DocRoutingBenchmark.routeDocsRange
7
1000
avgt
125925.531
ns/op

DocRoutingBenchmark.routeDocsRange
7
10000
avgt
1330136.39
ns/op

DocRoutingBenchmark.routeDocsRange
7
100000
avgt
13872079.1
ns/op

DocRoutingBenchmark.routeDocsRange
8
1
avgt
508.262
ns/op

DocRoutingBenchmark.routeDocsRange
8
100
avgt
9511.286
ns/op

DocRoutingBenchmark.routeDocsRange
8
1000
avgt
139429.952
ns/op

DocRoutingBenchmark.routeDocsRange
8
10000
avgt
1453068.55
ns/op

DocRoutingBenchmark.routeDocsRange
8
100000
avgt
15055794.7
ns/op

DocRoutingBenchmark.routeDocsRange
9
1
avgt
510.916
ns/op

DocRoutingBenchmark.routeDocsRange
9
100
avgt
10152.875
ns/op

DocRoutingBenchmark.routeDocsRange
9
1000
avgt
150015.975
ns/op

DocRoutingBenchmark.routeDocsRange
9
10000
avgt
1602086.52
ns/op

DocRoutingBenchmark.routeDocsRange
9
100000
avgt
16859985.8
ns/op

DocRoutingBenchmark.routeDocsRecurring
0
1
avgt
481.096
ns/op

DocRoutingBenchmark.routeDocsRecurring
0
100
avgt
6915.725
ns/op

DocRoutingBenchmark.routeDocsRecurring
0
1000
avgt
71412.345
ns/op

DocRoutingBenchmark.routeDocsRecurring
0
10000
avgt
726282.631
ns/op

DocRoutingBenchmark.routeDocsRecurring
0
100000
avgt
8129245.07
ns/op

DocRoutingBenchmark.routeDocsRecurring
1
1
avgt
504.045
ns/op

DocRoutingBenchmark.routeDocsRecurring
1
100
avgt
9180.867
ns/op

DocRoutingBenchmark.routeDocsRecurring
1
1000
avgt
93815.905
ns/op

DocRoutingBenchmark.routeDocsRecurring
1
10000
avgt
973699.552
ns/op

DocRoutingBenchmark.routeDocsRecurring
1
100000
avgt
10224791.9
ns/op

DocRoutingBenchmark.routeDocsRecurring
2
1
avgt
530.676
ns/op

DocRoutingBenchmark.routeDocsRecurring
2
100
avgt
11601.343
ns/op

DocRoutingBenchmark.routeDocsRecurring
2
1000
avgt
117090.87
ns/op

DocRoutingBenchmark.routeDocsRecurring
2
10000
avgt
1199006.97
ns/op

DocRoutingBenchmark.routeDocsRecurring
2
100000
avgt
12630158.5
ns/op

DocRoutingBenchmark.routeDocsRecurring
3
1
avgt
554.57
ns/op

DocRoutingBenchmark.routeDocsRecurring
3
100
avgt
14004.462
ns/op

DocRoutingBenchmark.routeDocsRecurring
3
1000
avgt
141144.605
ns/op

DocRoutingBenchmark.routeDocsRecurring
3
10000
avgt
1433050.55
ns/op

DocRoutingBenchmark.routeDocsRecurring
3
100000
avgt
15022877.8
ns/op

DocRoutingBenchmark.routeDocsRecurring
4
1
avgt
585.075
ns/op

DocRoutingBenchmark.routeDocsRecurring
4
100
avgt
16373.323
ns/op

DocRoutingBenchmark.routeDocsRecurring
4
1000
avgt
165582.599
ns/op

DocRoutingBenchmark.routeDocsRecurring
4
10000
avgt
1682310.52
ns/op

DocRoutingBenchmark.routeDocsRecurring
4
100000
avgt
17376692
ns/op

DocRoutingBenchmark.routeDocsRecurring
5
1
avgt
602.198
ns/op

DocRoutingBenchmark.routeDocsRecurring
5
100
avgt
18851.1
ns/op

DocRoutingBenchmark.routeDocsRecurring
5
1000
avgt
191034.424
ns/op

DocRoutingBenchmark.routeDocsRecurring
5
10000
avgt
1932252.88
ns/op

DocRoutingBenchmark.routeDocsRecurring
5
100000
avgt
19961205.4
ns/op

DocRoutingBenchmark.routeDocsRecurring
6
1
avgt
629.351
ns/op

DocRoutingBenchmark.routeDocsRecurring
6
100
avgt
21364.155
ns/op

DocRoutingBenchmark.routeDocsRecurring
6
1000
avgt
215418.63
ns/op

DocRoutingBenchmark.routeDocsRecurring
6
10000
avgt
2187030.87
ns/op

DocRoutingBenchmark.routeDocsRecurring
6
100000
avgt
22456628.9
ns/op

DocRoutingBenchmark.routeDocsRecurring
7
1
avgt
650.714
ns/op

DocRoutingBenchmark.routeDocsRecurring
7
100
avgt
23930.799
ns/op

DocRoutingBenchmark.routeDocsRecurring
7
1000
avgt
241918.217
ns/op

DocRoutingBenchmark.routeDocsRecurring
7
10000
avgt
2421512.91
ns/op

DocRoutingBenchmark.routeDocsRecurring
7
100000
avgt
24830535.8
ns/op

DocRoutingBenchmark.routeDocsRecurring
8
1
avgt
685.33
ns/op

DocRoutingBenchmark.routeDocsRecurring
8
100
avgt
26572.623
ns/op

DocRoutingBenchmark.routeDocsRecurring
8
1000
avgt
268137.903
ns/op

DocRoutingBenchmark.routeDocsRecurring
8
10000
avgt
2706184.6
ns/op

DocRoutingBenchmark.routeDocsRecurring
8
100000
avgt
27532240.3
ns/op

DocRoutingBenchmark.routeDocsRecurring
9
1
avgt
705.721
ns/op

DocRoutingBenchmark.routeDocsRecurring
9
100
avgt
29392.19
ns/op

DocRoutingBenchmark.routeDocsRecurring
9
1000
avgt
293422.558
ns/op

DocRoutingBenchmark.routeDocsRecurring
9
10000
avgt
2952632.51
ns/op

DocRoutingBenchmark.routeDocsRecurring
9
100000
avgt
30346605.2
ns/op

Is hash space distribution uniform for child shards?
To assess the quality of distribution of keys among shards we define the hash distribution quality as
\sum_{j=0}^{m-1} \frac{p_j\left(p_j+1\right) / 2}{(n / 2 m)(n+2 m-1)}

where $p_j$ is the number of doc ids in j-th primary shard, m is the number of shards, and n is the total number of doc ids. The sum of $p_j(p_j + 1) / 2$ estimates the number of shards that needs to be visited to find a specific doc id. The denominator (n / 2m)(n + 2m − 1) is the number of visited slots for an ideal function that puts each doc id into a random shard. So, if the function is ideal, the formula should give 1. In reality, a good distribution is somewhere between 0.95 and 1.05.

Simple benchmark
Baseline: 5 primary shards with no split, 100k keys using existing opensearch routing
Candidate 1: 5 primary shard split by a factor of 2, 100k keys using approach 1
Candidate 2: 5 primary shard split by a factor of 2, 100k keys using approach 2
hash quality of baseline: 1.02
hash quality of candidate 1: 1.03
hash quality of candidate 2: 1.03

All possible combinations of splitting of n=1 to n=2^6 shards showed that the average hash quality across all combination with 10k keys was `1.13` with approach 1 and `1.12` with approach 2
Hence, keyspace is getting distributed uniformly across the split shards with both the approaches!
Related component
Indexing:Replication
Thanks @vikasvb90 for all the help in refining the approaches as well as testing and benchmarking it

[Triage - attendees 1 2 3 4 5 6 7]
@CaptainDredge Thanks for creating this detailed proposal


[Feature] Zendesk Ticketing API Saas Integration

Zendesk Ticketing API Saas Integration
Description:
This is the reference documentation for the Zendesk Support API. It also covers features shared by other Zendesk v2 APIs. The v2 APIs consist of the Support API, the Help Center API, and the Talk API.

Documentation:
https://developer.zendesk.com/api-reference/ticketing/introduction/

TO-DO

API Actions Progress

Action
EngSpec Doc
SaaS Manager App
SaaS App Run
Test App Run
QA

List Tickets
Yes
No
No
No
No

Create Ticket
Yes
No
No
No
No

Update Ticket
Yes
No
No
No
No

Delete Ticket
Yes
No
No
No
No

List Users
No
No
No
No
No

Search Users
No
No
No
No
No

Create User
No
No
No
No
No

Update User
No
No
No
No
No

Delete User
No
No
No
No
No

List Organizations
No
No
No
No
No

Create Organization
No
No
No
No
No

Update Organization
No
No
No
No
No

Delete Organization
No
No
No
No
No

List Groups
No
No
No
No
No

Create Group
No
No
No
No
No

Update Group
No
No
No
No
No

Delete Group
No
No
No
No
No

List Views
No
No
No
No
No

List All Apps
No
No
No
No
No

Create App
No
No
No
No
No

Update App
No
No
No
No
No

Delete App
No
No
No
No
No

List Targets
No
No
No
No
No

Create Target
No
No
No
No
No

Update Target
No
No
No
No
No

Delete Target
No
No
No
No
No

List Side Conversations
No
No
No
No
No

Create Side Conversation
No
No
No
No
No

Update Side Conversation
No
No
No
No
No

Notes

closing this because we are not working on this currently


Trade array doesn't read string of protocols - messes up router setup!

So I have been continuing to make the bot profitable.
The config.ts says which of the protocols from my map should be used:
export const tradingRoutes: ITrade[] = [ { path: [ ERC20Token.USDC, ERC20Token.DAI, ERC20Token.USDC, ERC20Token.MATIC, ERC20Token.USDT, ERC20Token.WBTC, ERC20Token.LINK, ERC20Token.WMATIC, ERC20Token.WETH, ERC20Token.UNI, ERC20Token.AAVE, ERC20Token.CRV, ERC20Token.QI, ERC20Token.MANA, ERC20Token.BNB, ERC20Token.GRT, ], //add tokens! protocols: [1, 3, 6], //not working correctly. Only does Quoter and 2nd protocol amountIn: getBigNumber(20, ERC20Token.USDC.decimals), },
The trading finder uses these protocols to find arbitrage oppertunities:
export const findOpp = async (trade: ITrade) => {
  let amountOut = trade.amountIn;
  for (const [i, protocol] of trade.protocols.entries()) {
    switch (protocol) {

      case 1:
        try {
          amountOut = await getPriceOnSushi(
            trade.path[i].address,
            trade.path[i + 1].address,
            amountOut,
            findRouterFromProtocol(1)
          );
          break;
        } catch (e) {
          logError(e);
          amountOut = getBigNumber(0);
          break;
        }
      case 3:
        try {
          amountOut = await getPriceOnApeswap(
            trade.path[i].address,
            trade.path[i + 1].address,
            amountOut,
            findRouterFromProtocol(3) //exclude or change!
          );
          break;
        } catch (e) {
          logError(e);
          amountOut = getBigNumber(0);
          break;
        }
      case 6:
        try {
          amountOut = await getPriceonCat(
            trade.path[i].address,
            trade.path[i + 1].address,
            amountOut,
            findRouterFromProtocol(6)
          );
          break;
        } catch (e) {
          logError(e);
          amountOut = getBigNumber(0);
          break;
        }
      // uniswap v2

      default:
        try {
          amountOut = await getPriceOnUniV2(
            trade.path[i].address,
            trade.path[i + 1].address,
            amountOut,
            findRouterFromProtocol(protocol)
          );
          break;
        } catch (e) {
          logError(e);
          amountOut = getBigNumber(0);
          break;
        }

    }
  }

That's the findRouterFromProtocol
function: export const findRouterFromProtocol = (protocol: number) => { return uniswapRouter[Object.keys(uniswapRouter)[protocol]]; }
The protocols are read from the address file that was created here:
type RouterMap = { [protocol: string]: string };

export const uniswapRouter: RouterMap = {
  //these are all the routers!
  POLYGON_UNISWAP_V3: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
  POLYGON_SUSHISWAP: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
  POLYGON_QUICKSWAP: "0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff",
  POLYGON_APESWAP: "0xC0788A3aD43d79aa53B09c2EaCc313A787d1d607",
  POLYGON_BALANCER_V2: "0x8E9aa87E45e92bad84D5F8DD1bff34Fb92637dE9",
  POLYGON_JETSWAP: "0x5C6EC38fb0e2609672BDf628B1fD605A523E5923",
  POLYGON_POLYCAT: "0x94930a328162957FF1dd48900aF67B5439336cBD",
  POLYGON_WAULTSWAP: "0x3a1D87f206D12415f5b0A33E786967680AAb4f6d",
};

I don't know what exactly I did wrong, cause the only routers it actually pings from the protocol are the UniswapV3 and Quickswap router. Even after commenting them out, it still only calls these routers.
Any ideas how to call these Dexes in a better way maybe?

Solved it. I forgot to use yarn build again

ma'Lord any other way I can contact you more interactively?

is there a reason why you have multiple dexes in the findOpp function? The original code works as intended i.e. maps protocols to the uniswapV3 or uniswapV2. So for example, if UniswapV3 is protocol 0, it will be case 0, etc.


Add get_annotations() to CVPy

This commit adds the get_annotations() API to CVPy. Two tests are added to test classification and object detection CVAT projects.

Hi @ptelang and @kybowm, can you please review these changes? Thank you!

Looks good to me, @courtneyambrozic ! I left one non-critical suggestion.

Hi @ptelang and @kybowm, I made your suggestions for this change. Please take a look when you get the chance. I'll squash and merge if all looks good to you. Thanks!

Looks good to me, @courtneyambrozic! Thanks for the edits!

Hi @ptelang, please let me know if you have any more suggestions! Thanks!

Sorry about that, @ptelang, I'm not sure where those changes disappeared to. I updated the files and am going to squash & merge. Thanks for the review!


Broken demos and links from demos

Hey friends,
It looks like a few of the demos are broken, e.g.:
https://material-components.github.io/material-web/demos/elevation-overlay/
Also, links from demos to the "view source" button at the upper right hand side end up at 404's today.
Lastly, the top-level GH Pages url does not resolve:
https://material-components.github.io/
/cc @asyncLiz @rictic

There isn't a demos/ directory anymore because https://github.com/material-components/material-web/pull/3451 changed the whole structure of the project.
And here is why: https://github.com/material-components/material-web/issues/3050#issuecomment-1159152536


Not recognizing invalid email in 3.35.0

This is the email which is getting returned as true. invalid@email. 3.34.0 returns false though.

Fixed in 3.37.0.

@chriso Could you please publish the 3.37.0 version? Thanks.

Done.


ARROW-9509: [Release] Don't test Gandiva in the windows wheel verification script

Since gandiva is no longer included.
The passed build is available in the release verification PR where I applied this patch.
See https://github.com/apache/arrow/pull/7787#issuecomment-659993670

Closing in favor of https://github.com/apache/arrow/commit/83679f3b46e2c12e8f506c76323341c1d05b7d01#diff-3ebb5f8536634a43ccb884fcd453b1cdL88


ctime error no member named 'clock' in the global namespace

node -v && npm -v
v8.12.0
6.4.1
xcode-select -v
xcode-select version 2354

OSX 10.14.1 Mojave
> git clone git@github.com:tpisto/pdf-fill-form.git
> cd pdf-fill-form
> npm i

><EMAIL_ADDRESS>install /Users/.../work/pdf-fill-form
> node-gyp rebuild

  CXX(target) Release/obj.target/pdf_fill_form/src/pdf-fill-form.o
In file included from ../src/pdf-fill-form.cc:2:
In file included from ../src/NodePoppler.h:5:
In file included from /usr/local/include/QtCore/QBuffer:1:
In file included from /usr/local/include/QtCore/qbuffer.h:43:
In file included from /usr/local/include/QtCore/qiodevice.h:43:
In file included from /usr/local/include/QtCore/qglobal.h:1201:
In file included from /usr/local/include/QtCore/qglobalstatic.h:100:
In file included from /usr/local/include/QtCore/qmutex.h:48:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/chrono:303:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:60:9: error: no member named 'clock' in the global namespace; did you mean 'flock'?
using ::clock;
      ~~^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/fcntl.h:528:5: note: 'flock' declared here
int     flock(int, int);
        ^
In file included from ../src/pdf-fill-form.cc:2:
In file included from ../src/NodePoppler.h:5:
In file included from /usr/local/include/QtCore/QBuffer:1:
In file included from /usr/local/include/QtCore/qbuffer.h:43:
In file included from /usr/local/include/QtCore/qiodevice.h:43:
In file included from /usr/local/include/QtCore/qglobal.h:1201:
In file included from /usr/local/include/QtCore/qglobalstatic.h:100:
In file included from /usr/local/include/QtCore/qmutex.h:48:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/chrono:303:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:61:9: error: no member named 'difftime' in the global namespace
using ::difftime;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:62:9: error: no member named 'mktime' in the global namespace; did you mean 'mktemp'?
using ::mktime;
      ~~^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:216:7: note: 'mktemp' declared here
char    *mktemp(char *);
         ^
In file included from ../src/pdf-fill-form.cc:2:
In file included from ../src/NodePoppler.h:5:
In file included from /usr/local/include/QtCore/QBuffer:1:
In file included from /usr/local/include/QtCore/qbuffer.h:43:
In file included from /usr/local/include/QtCore/qiodevice.h:43:
In file included from /usr/local/include/QtCore/qglobal.h:1201:
In file included from /usr/local/include/QtCore/qglobalstatic.h:100:
In file included from /usr/local/include/QtCore/qmutex.h:48:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/chrono:303:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:63:9: error: no member named 'time' in the global namespace
using ::time;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:65:9: error: no member named 'asctime' in the global namespace
using ::asctime;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:66:9: error: no member named 'ctime' in the global namespace
using ::ctime;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:67:9: error: no member named 'gmtime' in the global namespace
using ::gmtime;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:68:9: error: no member named 'localtime' in the global namespace
using ::localtime;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:70:9: error: no member named 'strftime' in the global namespace
using ::strftime;
      ~~^
9 errors generated.
make: *** [Release/obj.target/pdf_fill_form/src/pdf-fill-form.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/Cellar/node@8/8.12.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Darwin 18.2.0
gyp ERR! command<EMAIL_ADDRESS><EMAIL_ADDRESS>"rebuild"
gyp ERR! cwd /Users/.../work/pdf-fill-form
gyp ERR! node -v v8.12.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/.../.npm/_logs/2018-11-09T15_36_19_351Z-debug.log

saw #23 it does not solve it

maybe because brew does not support it now: brew linkapps qt5?

solution:

remove xcode from application
brew doctor, then remove all warnings
brew reinstall qt5 cairo poppler --with-qt

export LDFLAGS="-L/usr/local/opt/qt/lib" &&
export CPPFLAGS="-I/usr/local/opt/qt/include" &&
export PKG_CONFIG_PATH="/usr/local/opt/qt/lib/pkgconfig"

I don't know why, but it works now without xcode-select --install


KML linestring clamp to ground fails

Reported on the forum: https://groups.google.com/forum/?hl=en#!topic/cesium-dev/9wvnNNQcLTA
This KML renders fine when clampToGround: false but doesn't render anything when clampToGround: true.  Zooming to it then causes a crash in Scene updateFrustums because NaNs populate the frustum values.
track.kml.txt
var viewer = new Cesium.Viewer('cesiumContainer');
var options = {
    camera : viewer.scene.camera,
    canvas : viewer.scene.canvas,
    clampToGround: true
};

viewer.zoomTo(viewer.dataSources.add(Cesium.KmlDataSource.load('../../SampleData/kml/track.kml', options)));

Here's another example from https://groups.google.com/forum/?hl=en#!topic/cesium-dev/7h3W_ICb4wM
test3.kml.txt

This is a corridor geometry bug but only happens when clamping to ground (remove height in the below to break it).
var viewer = new Cesium.Viewer('cesiumContainer');

var redCorridor = viewer.entities.add({
    name : 'Red corridor on surface with rounded corners and outline',
    corridor : {
        positions : Cesium.Cartesian3.fromDegreesArray([
                                                        -16.41549000000001,28.44423000000001,
            -16.41549000000001,28.44423000000001,
            -16.41505000000001,28.44430000000001,
            -16.41507000000001,28.44430000000001,
            -16.41473000000001,28.44460000000001,
            -16.41429000000001,28.44452000000001,
            -16.41430000000001,28.44453000000001,
            -16.41428000000001,28.44452000000001,
            -16.41416000000001,28.44434000000001,
            -16.41415000000001,28.44434000000001,
            -16.41397000000001,28.44408000000001
                                                    ]),
                                                    width : 1,
        height:0,
        material : Cesium.Color.RED.withAlpha(0.5),
        outline : true,
        outlineColor : Cesium.Color.RED
    }
});

viewer.zoomTo(viewer.entities);

This is happening because the bounding box/shadow volume minimum isn't quite low enough.  For small shapes it's equal with the level of the tile and results in z-fighting.
See #4485 for discussion

We should really try to fix this soon.  Look how bad this example looks:

var viewer = new Cesium.Viewer('cesiumContainer');

var entity = viewer.entities.add({
    position: Cesium.Cartesian3.fromDegrees(-95.0, 40.0),
    ellipse: {
        semiMajorAxis: 500.0,
        semiMinorAxis: 500.0
    }
});

viewer.zoomTo(entity);

Also reported here: https://groups.google.com/d/msg/cesium-dev/hEuF6TWyKdQ/32CP1WhEBQAJ

This one still seems to be a problem, unfortunately
var viewer = new Cesium.Viewer('cesiumContainer');

var redCorridor = viewer.entities.add({
    name : 'Red corridor on surface with rounded corners and outline',
    corridor : {
        positions : Cesium.Cartesian3.fromDegreesArray([
                                                        -16.41549000000001,28.44423000000001,
            -16.41549000000001,28.44423000000001,
            -16.41505000000001,28.44430000000001,
            -16.41507000000001,28.44430000000001,
            -16.41473000000001,28.44460000000001,
            -16.41429000000001,28.44452000000001,
            -16.41430000000001,28.44453000000001,
            -16.41428000000001,28.44452000000001,
            -16.41416000000001,28.44434000000001,
            -16.41415000000001,28.44434000000001,
            -16.41397000000001,28.44408000000001
        ]),
        width : 1,
        material : Cesium.Color.RED.withAlpha(0.5),
        outline : true,
        outlineColor : Cesium.Color.RED
    }
});

viewer.zoomTo(viewer.entities);

This one is still broken as well https://github.com/AnalyticalGraphicsInc/cesium/issues/4326#issuecomment-250478217

@hpinkos check out the debug views for these.  Does it matter if they are on terrain or on the ellipsoid?  Does hacking in a large negative direction solve the problem?  Or is this because the width is defined in meters, not pixels, so the volume becomes very thing?

The corridor now renders correctly when added using the Primitive API, but not the Entity API
var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;

var redCorridorInstance = new Cesium.GeometryInstance({
    geometry: new Cesium.CorridorGeometry({
        positions : Cesium.Cartesian3.fromDegreesArray([
            -16.41549000000001,28.44423000000001,
            -16.41549000000001,28.44423000000001,
            -16.41505000000001,28.44430000000001,
            -16.41507000000001,28.44430000000001,
            -16.41473000000001,28.44460000000001,
            -16.41429000000001,28.44452000000001,
            -16.41430000000001,28.44453000000001,
            -16.41428000000001,28.44452000000001,
            -16.41416000000001,28.44434000000001,
            -16.41415000000001,28.44434000000001,
            -16.41397000000001,28.44408000000001
        ]),
        width : 1,
        vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
    }),
    attributes : {
        color : Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(1.0, 0.0, 0.0, 0.5))
    }
});

var primitive = scene.groundPrimitives.add(new Cesium.GroundPrimitive({
    geometryInstances: [redCorridorInstance],
    appearance: new Cesium.PerInstanceColorAppearance({
        closed: true
    })
}));

scene.camera.setView({
    destination: Cesium.Cartesian3.fromDegrees(-16.41549000000001, 28.44423000000001, 100)
});

So the problem is unrelated to the shadow volume problem

If someone wants to look at this, the geometry for the Corridor is created in CorridorGeometryUpdater.createFillGeometryInstance and then it's used in StaticGroundGeometryColorBrach in the createPrimitive block around line 86.  There's probably an unrelated bug specific to CorridorGeometry in the Entity API.

I'm going to open a new issue with more specific details since we fixed the shadow volume problem.


Cannot add name and email address to user profile during signup with phone number

During the signup process I need to be able to add a name and email address to the ConnectyCube user profile.
Your docs use this example when not signing up using a phone number and Firebase phone number authentication:
const userProfile = {
  login: "marvin18",
  password: "supersecurepwd",
  email<EMAIL_ADDRESS>  full_name: "Marvin Simon",
  phone: "47802323143",
  website: "https://dozensofdreams.com",
  tag_list: ["iphone", "apple"],
  custom_data: JSON.stringify({ middle_name: "Bartoleo" }),
};

ConnectyCube.users
  .signup(userProfile)
  .then((user) => {})
  .catch((error) => {});

The docs say that when creating a ConnectyCube account up with a phone number and Firebase, use this code:
const userCredentials = {
    "provider": "firebase_phone",
    "firebase_phone": {"project_id": "..." , "access_token": "..."}
};

ConnectyCube.login(userCredentials)
  .then((user) => {})
  .catch((error) => {});

At the moment I am using this hacky solution that is prone to errors to add a name to a ConnectyCube account during signup with phone number:
const user = await loggedInToFirebase();
  if (user) {
    const accessToken = await user.getIdToken()
    const userCredentials = {
      provider: 'firebase_phone',
      "firebase_phone": {
        "project_id": "xxx",
        "access_token": accessToken
      }
    };
    try {
      const connectyCubeSession = await createConnectyCubeSession();
      const connectyCubeUserProfile = await logInToConnectycube(userCredentials);
      await connectToChat(connectyCubeSession, connectyCubeUserProfile)
      if (connectyCubeUserProfile
        && (connectyCubeUserProfile.full_name === null
          || connectyCubeUserProfile.full_name === "undefined")
        && profileName !== undefined) {
        await addNameToConnectycubeProfile(
          connectyCubeUserProfile.login,
          profileName)
      }

...

export const addNameToConnectycubeProfile = (login, profileName) => {
  const updatedUserProfile = {
    login,
    full_name: profileName,
  };

  return ConnectyCube.users
    .update(updatedUserProfile)
    .then(user => user)
    .catch(error => error);
}

How can I add name and email to ConnectyCube profile during account creation with phone number?
Thanks.

Basically you are correct with the solution.
In terms of phone number authentication - there is no a sign up process, it's only a sign in, which will create a user on the first time a user logs in.
So basically the flow should be like this:

sign in with phone number
check user's fields - if they are empty -> do another request to user update and set the required name & email

Understood Dave thanks. It's actually the same flow when signing in with Firebase.


✨ Zen Mode by default

Hello..
I love Blowfish. However I have a feature request. I way to enable ZenMode for all Articles by default. Since most of us have large monitors it's better.
Thanks

I forgot to mention that embedded videos are no longer centered when ZenMode is enabled. Look at image below.

Hi @DarkXero-dev, I think this is a nice feature. I don't know how to do it thought params in each article, but I have done it as a shortcode: layouts>shortcodes>zenmode-enabled.html
<script>
    window.onload = function() {
        var zenButton = document.getElementById('zen-mode-button');
        zenButton.click();
    };
</script>

In each article that I want to activate by default, I add {{ zenmode-enabled }}. Isn't an elegant solution but it works :)

@dioxipe
Thanks for showing me a solution. It's best we can do until devs include it in the code via an update at some point..

Just to, first, express my gratitude to Nuno and the rest of developers of this very nice theme and, second, support this feature request as I would also be interested in it.

Hey, sorry, everyone. It's been hard keeping up with the inflow of issues. My concern with this one is that it requires a new parameter. I need to consider this. @DarkXero-dev would a param to activate zemode for all articles be sufficient or would you like to have something on a per-article basis... as I write this I realize that if I follow the existing logic it should support both.

Hey. Am glad you are back. Better to have it as a whole. I have too many articles to have to do it on a per Article basis. Thank you so much for your hard work.

My suggestion, if implementing this, it’s better it being following the same logic as everywhere: a global (default) parameter, plus per-article override.


https://www.gov.scot/

~501K?

I got 787kb compressed (1.2MB uncompressed).

I got 787kb compressed (1.2MB uncompressed).

...I see that now too.


Unable to load photos in NextCloud - receiving error 403 for PROPFIND

Hi,
First of all apologies if I sound like a noob, in fact I am! While I have been in IT infrastructure for many years, I am quite new to coding and web administration - trying to learn something new :)
I do however have a background in networking and firewalling so many of the terms etc are familiar. I would also consider myself an above average troubleshooter, even in areas I am new to.
Error Log / Triggered Rule Numbers
22:45:06 [error] 195997#195997: *11897 [client <IP_ADDRESS>] ModSecurity: Access denied with code 403 (phase 2). Matched "Operator Ge' with parameter 5' against variable TX:ANOMALY_SCORE' (Value: 5' ) [file "/usr
/local/coreruleset-3.3.0/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "80"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 5)"] [data ""] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"]
[accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "<IP_ADDRESS>"] [uri "/remote.php/dav/files/my_name/Photos/Birdie.jpg"] [unique_id "1601469906"] [ref ""],
client: <IP_ADDRESS>, server: cloud.com, request: "PROPFIND /remote.php/dav/files/my_name/Photos/Birdie.jpg HTTP/2.0", host: "cloud.com"
Audit Log
ModSecurity: Warning. Matched "Operator StrEq' with parameter PROPFIND' against variable REQUEST_METHOD' (Value: PROPFIND' ) [file "/etc/nginx/modsec/modsecurity.conf"] [line "127"] [id "12000000"] [rev ""] [msg ""] [data
""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "<IP_ADDRESS>"] [uri "/remote.php/dav/files/my_name/Photos/Vineyard.jpg"] [unique_id "1601473020"] [ref "o0,21v9,48t:lowercasev0,8"]
ModSecurity: Warning. Matched "Operator Rx' with parameter (?:get|post|head|options|connect|put|delete|trace|track|patch|propfind|propatch|mkcol|copy|move|lock|unlock)\s+(?:/|\w)[^\s]*(?:\s+http/\d|[\r\n])' against variab
le REQUEST_BODY' (Value: \x0a\x09\x09\x09<d:propfind  xmlns:d="DAV:"\x0a\x09\x09\x09\x09xmlns:oc="http:/ (904 characters omitted)' ) [file "/usr/local/coreruleset-3.3.0/rules/REQUEST-921-PROTOCOL-ATTACK
.conf"] [line "33"] [id "921110"] [rev ""] [msg "HTTP Request Smuggling Attack"] [data "Matched Data: propfind  xmlns:d="dav:"\x0a found within REQUEST_BODY: \x0a\x09\x09\x09<d:propfind  xmlns:d="dav:"\x0
a\x09\x09\x09\x09xmlns:oc="http://owncloud.org/ns"\x0a\x09\x09\x09\x09xmlns:nc="http://nextcloud.org/ns"\x0a\x09\x09\x09 (508 characters omitted)"] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "ap
plication-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/210/272/220/33"] [hostname "<IP_ADDRESS>"] [uri "/remote.php/dav/files/my_name/
Photos/Vineyard.jpg"] [unique_id "1601473020"] [ref "o28,25v888,641t:urlDecodeUni,t:htmlEntityDecode,t:lowercase"]
ModSecurity: Access denied with code 403 (phase 2). Matched "Operator Ge' with parameter 5' against variable TX:ANOMALY_SCORE' (Value: 5' ) [file "/usr/local/coreruleset-3.3.0/rules/REQUEST-949-BLOCKING-EVALUATION.conf"]
[line "80"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 5)"] [data ""] [severity "2"] [ver "OWASP_CRS/3.3.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "
platform-multi"] [tag "attack-generic"] [hostname "<IP_ADDRESS>"] [uri "/remote.php/dav/files/my_name/Photos/Vineyard.jpg"] [unique_id "1601473020"] [ref ""]
Your Environment
This is a brand new deployment. NextCloud is a vanilla install using the https://www.hanssonit.se/nextcloud-vm. I believe this is running Apache 2.4.41
The WAF is Ubuntu 20.04 with nginx 1.18.0 - obviously this sits in front of the NextCloud server (whose config is untouched)

CRS version: 3.3.0
Paranoia level setting: 1
ModSecurity version: 3.0.4
Web Server and version: nginx 1.18.0
Operating System and version: Ubuntu 20.04

Troubleshooting

If I disable modsec the problem goes away instantly. This was my initial test until I found the nginx error.log and modsecurity audit.log.
To date I have enabled the NextCloud exclusion rule as part of crs-setup.conf
I also limited the number of SSL ciphers available (in particular weak) from the WAF (using Qualys SSL scans), though returning to defaults did not make a change
I made the following change in modsecurity.conf as mentioned in a separate post for similar problem (though different error)
SecRule REQUEST_URI "@beginsWith /remote.php/dav/files"
"id:'12000000',phase:1,t:none,t:lowercase,pass,log,ctl:requestBodyProcessor=XML,chain"
SecRule REQUEST_METHOD "@streq PROPFIND"

Confirmation
[x] I have removed any personal data (email addresses, IP addresses,
passwords, domain names) from any logs posted.

Just to add to this, it is a preview and action function that won't load. For example by selecting the photo it it supposed to load the photo, but also an actions sidebar. I should also be able to select a file and click 'share' but because the sidebar does not display, the ability to share among other settings is impossible,

Hi @mackov83 .
I found that this is similar to what happens here: https://github.com/coreruleset/coreruleset/issues/1838#issuecomment-658375843.
Will try to contact nextcloud devels to see if they can fix this.

@mackov83
PR will fix that is already prepared:
https://github.com/coreruleset/coreruleset/pull/1902

@mackov83 If you want to try development version of exclusion rules package for Nextcloud, here are step-by-step directions:
1.) Download this file and put it into /usr/share/modsecurity-crs/rules (replace the old one):
wget https://raw.githubusercontent.com/kam821/coreruleset/patch-v3.4/nextcloud/rules/REQUEST-903.9003-NEXTCLOUD-EXCLUSION-RULES.conf -O /usr/share/modsecurity-crs/rules/REQUEST-903.9003-NEXTCLOUD-EXCLUSION-RULES.conf
2.) Edit /etc/modsecurity/crs/crs-setup.conf and add this line into rule number 900130 (uncomment it if it's commented out) after the line t:none,\:
setvar:tx.crs_exclusions_nextcloud=1,\
so it will look similar to this:
SecAction \
 "id:900130,\
  phase:1,\
  nolog,\
  pass,\
  t:none,\
  setvar:tx.crs_exclusions_nextcloud=1,\
  setvar:tx.crs_exclusions_drupal=0,\
  setvar:tx.crs_exclusions_wordpress=0"

@azurit Thanks very much for the info. I have implemented this as per your suggestion and it indeed solved my issue. Should I mark this case as closed?

@mackov83 Yes, thank you! Will be resolved with next release.


Won't save when making changes in CSS file.

If I make a changes in my CSS file. Whether I make a small change in color or add a new rule, the file will not save. It will only save after I quit the program. I don't know if its brackets itself or one of the plug-ins that is causing this problem.

@apolloinfinity You can quickly check to see if this is caused by an extension by using Debug > Reload Without Extensions and then trying again to save.

Thank you. It is an extension. Now I got to figuire out which one.
On Thu, Feb 5, 2015 at 7:32 AM, Randy Edmunds<EMAIL_ADDRESS>wrote:

@apolloinfinity https://github.com/apolloinfinity You can quickly check
to see if this is caused by an extension by using Debug > Reload Without
Extensions and then trying again to save.
—
Reply to this email directly or view it on GitHub
https://github.com/adobe/brackets/issues/10526#issuecomment-73065447.

Closing. Please let us know here which extension it was. Also, open an issue on the repo of the extension.

The instructions at https://github.com/adobe/brackets/wiki/Troubleshooting#disabling-extensions-individually should help you figure out which extension.

brackets-beautify v1.2.0 is causing this issue for me on .scss files (and i presume .css too)


2021-01-05 release

Release Notes:
Edits:

fixed spelling and grammatical errors
change CL:0000815 name to tear secreting cell
fixed various neuronal cells axioms
added various synonyms
changed CP terms to CL identifiers
obsoleted CL:4023034, CL:4023067, CL:4023078 (to be moved to PCL)

New Terms:

L6 tyrosine hydroxylase positive sst expressing GABAergic cortical interneuron (Mus musculus)
sst chodl GABAergic cortical interneuron

error caused by:
relationship: has_input CL:0000243 ! obsolete glial cell (sensu Vertebrata)

Fixed with refreshing GO mirror


Fix Nacos unSubscribe when shutdown

What is the purpose of the change
Fix https://github.com/apache/dubbo/issues/10607
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #10609 (ea1344c) into 3.1 (9db2eb5) will decrease coverage by 0.31%.
The diff coverage is 33.33%.

@@             Coverage Diff              @@
##                3.1   #10609      +/-   ##
============================================
- Coverage     64.76%   64.44%   -0.32%
- Complexity      395      411      +16
============================================
  Files          1331     1334       +3
  Lines         56520    56632     +112
  Branches       8370     8350      -20
============================================
- Hits          36603    36495     -108
- Misses        15978    16174     +196
- Partials       3939     3963      +24

Impacted Files
Coverage Δ

...org/apache/dubbo/registry/nacos/NacosRegistry.java
50.81% <0.00%> (-0.34%)
:arrow_down:

...he/dubbo/registry/nacos/NacosServiceDiscovery.java
46.75% <100.00%> (+0.70%)
:arrow_up:

...mmon/serialize/fastjson2/FastJson2ObjectInput.java
0.00% <0.00%> (-62.50%)
:arrow_down:

...mon/serialize/fastjson2/FastJson2ObjectOutput.java
0.00% <0.00%> (-56.25%)
:arrow_down:

...dubbo/remoting/zookeeper/ZookeeperTransporter.java
50.00% <0.00%> (-33.34%)
:arrow_down:

...on/serialize/fastjson2/FastJson2Serialization.java
57.14% <0.00%> (-28.58%)
:arrow_down:

...ng/zookeeper/curator5/Curator5ZookeeperClient.java
43.86% <0.00%> (-26.42%)
:arrow_down:

...dubbo/common/status/support/LoadStatusChecker.java
41.66% <0.00%> (-25.00%)
:arrow_down:

...nt/metadata/ServiceInstanceHostPortCustomizer.java
65.78% <0.00%> (-21.06%)
:arrow_down:

...n/serialize/fastjson2/Fastjson2CreatorManager.java
46.66% <0.00%> (-20.00%)
:arrow_down:

... and 78 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Feature - UI

What if... we make it look like atmospherejs.com?
A cover, then "Misas 'happening' right now", "Misas most attended", "New misas", and in the same format, a card with the name, schedule and a sparkline showing attendance?
Which opens up to another idea for later: what if we can add the ability for users to toggle a button that says "I go to this misa" so you can have an idea of attendance. Not only does it give insight to users, it can help the church know where to allocate more resources maybe...

That "I go to misa" ideas seems great to me.
So will the be the issue that we will be using for the UI design? If so I wanted to include some important links for the design given that you wanted to follow google's material design approach.
Angular Material (Implements google's material design specs) I think you told me about this before.
https://material.angularjs.org/latest/

@roman0316 can I close this? Or will we be discussing UI design more indepth here?


Update README to include information about environment control panel

I think this got closed because I merged the target branch into main. I expected that github would be smart enough to figure that out, but I guess not. Github isn't allowing me to reopen this PR, so I'm going to merge it into main manually and we can continue to workshop the readme there.


Buttons in the app do not work

When I press the Resize/Emojis/Sounds/Gestures buttons in the app, nothing happens.

I believe you are currently using the iteration 2 of the application. The keys were dummy and will not work. This has been fixed in the iteration 3.
Iteration 3 is currently available on google play store only, and hopefully f-droid will pick up the update soon.


Refactor some animation code

Instead of using states.toasty.reset(), you have to use states.toasty.no_anim() as that's more intuitive.

should be on Midi to review since it's mostly her code i think?


ChromyJS returned an unexpected error while attempting to capture a selector.

Hello
I play with backstopJS and chromy seems to bug sometimes.
Maybe It’s because I try to find a only one selector and it’s not present in the tested page.
ChromyJS returned an unexpected error while attempting to capture a selector. Error: not opened
    at WebSocket.send (/home/travis/build/20minutes/colette/node_modules/ws/lib/WebSocket.js:356:18)
    at Chrome.enqueueCommand (/home/travis/build/20minutes/colette/node_modules/chrome-remote-interface/lib/chrome.js:115:16)
    at /home/travis/build/20minutes/colette/node_modules/chrome-remote-interface/lib/chrome.js:79:28
    at Promise (<anonymous>)
    at Chrome.send (/home/travis/build/20minutes/colette/node_modules/chrome-remote-interface/lib/chrome.js:78:16)
    at Object.handler [as evaluate] (/home/travis/build/20minutes/colette/node_modules/chrome-remote-interface/lib/api.js:32:23)
    at Chromy._callee$ (/home/travis/build/20minutes/colette/node_modules/chromy/dist/document.js:400:81)
    at tryCatch (/home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:65:40)
    at Generator.invoke [as _invoke] (/home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:299:22)
    at Generator.prototype.(anonymous function) [as next] (/home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:117:21)
    at tryCatch (/home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:65:40)
    at invoke (/home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:155:20)
    at /home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:198:11
    at Promise (<anonymous>)
    at callInvokeWithMethodAndArg (/home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:197:16)
    at AsyncIterator.enqueue [as _invoke] (/home/travis/build/20minutes/colette/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:220:13)

You can se the log of the test here:
https://travis-ci.org/20minutes/colette/jobs/267365456

Hi @ryuran,
This test seems to open the many ports.
Would the test be failed even if it is small test?

I will try.

@dotneet It seems OK with only one test.
Maybe backstop.js should have a limit of concurrent test ?

@dotneet I try to limit async test with backstop but this problem still here.

I'm also seeing this issue while running in docker on a linux container.
I set the number of async captures to 1.
After a while, the entire process just hangs and never exits without any other errors. This may need to be added to another issue, but I will start looking into how these threads are being created/cleaned up. it seems a thread is just locking and never cleaning up properly causing the entire run to just come to a halt.


Added integerClosedRange to String Extensions [WIP]

Fixes #208
I'm still missing Tests. Can you guys help me with that?

          2 Messages

  :book:
  Executed 101 tests, with 0 failures (0 unexpected) in 1.986 (2.183) seconds

  :book:
  Executed 97 tests, with 0 failures (0 unexpected) in 2.622 (2.838) seconds

  Generated by :no_entry_sign: danger

Current coverage is 30.17% (diff: 0.00%)

Merging #269 into master will decrease coverage by 0.07%

@@             master       #269   diff @@
==========================================
  Files            45         45
  Lines          2003       2008     +5
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            606        606
- Misses         1397       1402     +5
  Partials          0          0

Powered by Codecov. Last update f860951...83c0fd9

@piv199 can we merge this?


non-interactive UI - IPFS timeout

Problem
Telemetry page don't show error response. This leads to endless waiting on the part of the user.
Error
One of error, which I can see in debug console, but don't see in UI - IPFS timeout:

Solution
Show to user this this error and ask to change gateway to other in the list.

Tested on b4c699b

still actual on https://github.com/airalab/robonomics.app/commit/24120c0c9a5d51c67d620cfe2bf4def7a6ea0248

Added error output in notifications when loading files from ipfs.
@positivecrash make it possible to stop downloading and display errors instead.


Add date-based naming scheme for DVR files and add video metadata

This PR allows users with an active RTC to chose between the conventional naming scheme (i.e. hdz_000, hdz_001 etc.) and a date-based one (i.e. 2023-11-24T13_34_37).
When no rtc battery is present, the user can not change the naming scheme. On top of that, it automatically falls back to the conventional scheme as default.
Further, I added some metadata to the DVR files i.e. a title (currently the file name) and - for mp4 - the date it was created.
Over the course of my research and the implementation, I found out that the ts container does not support any metadata information about the media creation date, hence a note in the sources.
Closes #42
Closes #116

I was playing with this feature on the emulator and noticed I'm unable to change the Naming Scheme option because there is no RTC battery installed on the Emulator.  Do you think this option should be be disabled in a similiar fashion to your other PR, if no RTC battery is present then the row is not selectable and has a darker shade?
Perhaps mark the PR as a draft until the other PR has been merged, that way it follows the standard you have set forth.

I was playing with this feature on the emulator and noticed I'm unable to change the Naming Scheme option because there is no RTC battery installed on the Emulator. Do you think this option should be disabled in a similar fashion to your other PR, if no RTC battery is present then the row is not selectable and has a darker shade?

You're right. I already had that in mind but wasn't sure how to correctly go ahead and mark this PR to lack some work after #369. I'll convert this PR to draft in a minute 👍
Maybe I'll play around a little and try to come up with an RTC mock for emulator builds 😉

Actually I could see us temporary blinking the Date/Time in live view when the recording is started.... that way we don't need to have it on permanently.... but that would potentially be a future feature.

Yeah we should keep that in mind. Perhaps you'd need the user to decide how they want the OSD to behave.

Final comment... though its more of a personal preference.... i think we should simplify the timestamp convention to something a little more readable perhaps...
2023-11-24T13_34_37.mp4 to 20231124_133437.mp4

That's actually a good idea imho. That way you could navigate your files easier by just typing the digits instead of having to add the dashes, too. The only thing I'd change is separating the date from time with a dash instead of an undesrscore like so: 20231124-133437.mp4. What do you think about that?
I came up with the current scheme through Wikiwix's comment in #123.

That was a pure coincidence, they aren't on my (German) keyboard 😆

Liking it, great!
Any thoughts, however, on #359 ?

It's worth noting that it appears that this PR also changed hot clip naming?  (At least I assume it was this PR, I see that mark_video_file changed.
Previously, if you had no hot clips and hot clipped DVR file hdz_028, it would become hot_hdz_001, but now it becomes hot_hdz_028.
I kind of like it to be honest, it helps you know where the file was in the sequence of DVR files - without the RTC mod, this was impossible to know for sure with the old system.
It also seems that the next clip will be hdz_029 - ie hdz_028 would not get used again, so you would not end up with a hot_hdz_028 and a hdz_028, so even if this was unintentional, I see no real need to change it back to how it was.

That was indeed unintentional 😅

@Master92 If we do intend to keep it as it currently is, then we should probably remove unused code

@evilC agreed. I'm currently working on that file for the date-folder feature and will try to keep removing that in mind 👍

@Master92 I could maybe get rid of it as part of PR #389 ?

@evilC I'd be okay with that as well 😉👍


Add in more neglected topics.

@ganicke,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


https://registry.yarnpkg.com/react-scripts-tailwind: Not found

Steps to Reproduce
$ create-react-app app --scripts-version=react-scripts-tailwind

Creating a new React app in D:\userdata\...\app.

Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts-tailwind...

yarn add v0.27.5
info No lockfile found.
[1/4] Resolving packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/react-scripts-tailwind: Not found".

PS: Sorry, I figured something like this won't require much from the issue template

@imalbert try this: create-react-app app --scripts-version=@intabulas/react-scripts-tailwind


player button is not synchronize with audio

Hi,
I am running instream ad inside google IMA player and It seems that there are few problems:

the properties of the video like muted and volume are defined. How can  I know the initial state of the video? How can I know these values while the video is playing?
When the sound button of the player starts with no sound when the insecure option is chosen the video starts with sound
When the sound button of the player starts with no sound  and we change the volume to 1 (and dispatch ad volume change event) the video starts unmuted (as it should) but the button of the player is not synchronized - it is still muted (secure and insecure mode)

ad tag for example: https://bs.serving-sys.com/Serving/adServer.bs?c=23&cn=display&pli=1073953433&ord=12121212
If you need additional please let me know
Thanks

remark regarding point 1: values are undefined of volume and muted in secure mode

1 is a known issue, and we're working on fixing it in the IMA SDK itself.
Can you clarify points 2 and 3 for me? When you talk about the "player", are you talking about the content player or the player for the video portion of your VPAID? Could you give me steps to repro the issue? e.g. load this tag, click play, click mute, see X but expect Y. Thanks!

Hi, thanks for the reply.
Regarding point  1 - Do you have estimation when it will be fixed?
The other points I'll detail the phases:
Problem -> the state of the mute button of the player is not synchronized with the audio
Scenario 1
a. Open the following URL - https://developers.google.com/interactive-media-ads/docs/sdks/html5/vastinspector?hl=iw&tag=https%253A%252F%252Fbs.serving-sys.com%252FServing%252FadServer.bs%253Fc%253D23%2526cn%253Ddisplay%2526pli%253D1073982496%2526ord%253D12345%2526cim%253D1
b. click on Test ad (relevant for both secure and insecure mode)
c. Click on Audio off -> behave as it should: video is muted and mute button of the player is in state mute (UI: X is displayed)
d. Click on Audio on -> video is unmuted but state of the mute button of the player is not changed
Scenario 2
in our code we check if we have value of volume from video. if not (like in IMA secure case) our default is 1 and we dispatch AdVolumeChange event to the player.
Therefore, I expect the video to start unmuted and that the mute button of the player will be in unmute state, even if user set it before to muted (unless setAdVolume is sent which is not the case)
Steps to reproduce:
a. Open the following URL - https://developers.google.com/interactive-media-ads/docs/sdks/html5/vastinspector?hl=iw&tag=https%253A%252F%252Fbs.serving-sys.com%252FServing%252FadServer.bs%253Fc%253D23%2526cn%253Ddisplay%2526pli%253D1073982496%2526ord%253D12345%2526cim%253D1
b. choose secure mode
c. mute the player button (so in UI will be X)
d. click on Test Ad
e. expected result: video unmuted + mute btn in state unmuted. Actual result: video unmuted + mute btn is state mute
Scenario 3
Getting wrong values in insecure mode when state of the mute button of the player is muted.
In insecure mode when setting the mute button of the player to muted I expect to get in the video slot muted true and instead I get videoSlot.volume - 1 and videoSlot.muted - false.
As a result the video starts unmuted even though I expect it to start muted
I think that as result of these issues when toggling the mute button of the player I get wrong behavior.
If you need more information please let me know

Hi there,
Is this an issue with the IMA SDK in general or the video.js plugin (which uses the IMA SDK)? The samples you linked are using the Video Suite Inspector, which does not use the video.js plugin. If you are using the video.js plugin (the project hosted in this repo) the you're in the right place, but if you're using the IMA SDK without the video.js plugin you'll get better support at our IMA SDK forum. If you're using the video.js plugin, can you replicate your issues in our samples?
Thanks!
Shawn

Closing for lack of response - if you still need help let us know!


Remove uneccesary describe block

Move accordion.start($element) inside each individual test so that we don’t need to define two different widely-scoped beforeEach callbacks.
As requested by @thehenster in #75

:+1: Thanks!

For future reference, the diff is a lot clearer without whitespace.


remove potential panics from unimplemented blocks

[ ] I added an entry to CHANGELOG.md if knowledge of this change could be valuable to users.

Here is a brief summary of what I did:

 GdalSource: Panics entfernen

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

31 of 37 (83.78%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 84.687%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

datatypes/src/operations/image/colorizer.rs
0
1
0.0%

operators/src/source/gdal_source/loading_info.rs
2
3
66.67%

operators/src/source/gdal_source/mod.rs
0
4
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
38940

Relevant Lines:
45981

💛  - Coveralls

bors retry


Add joblib as a run requirement

Checklist

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

Closes https://github.com/conda-forge/ambertools-feedstock/issues/114

@conda-forge-admin, please rerender


node-waf: command not found

Steps

npm add node-network-devtools

I am getting below error
Error:
npm error command failed
npm error command sh -c node-waf clean || true; node-waf configure build
npm error sh: node-waf: command not found
npm error sh: node-waf: command not found

My systems details:
node -v : v20.14.0
npm -v: 10.7.0
Mac OS: 14.5

Hello 👋 The problem has been identified as a dependency on the zlib library. I mistakenly used a persistent and unmaintained library, and I expect to fix this issue tonight.

Hello~The issue has been fixed in version v1.0.7, which has been released and is now available


expose the consul certificates to the haproxy container

reference #228

this won't work as-is.  The consul_ca_file variable and consul_cert_file variables are defined in the consul role, so not available in the haproxy role.


Fix callOverloadSet (for real now)

intrestingly this needed UFCS-reverse :)

operator overloading depends on this.

I have no idea what problem this is solving, and there is no test, once again.

This cannot be tested in isolation.
there is no way to trigger this code-patch without for example my opEquals patch

Is there is no way to trigger the code path, then this doesn't fix anything, because nothing is broken.


⚠ Samsung has degraded performance

In 1bce486, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2075 ms

Resolved: Samsung performance has improved in 6fafcd0.


storybook error

Description
I setup Option 4 in my storybook and nextjs application
in nextjs application, the Option 4 setup works well. but in storybook, storybook makes an error even if i wrapping Story Component with <NextIntlClientProvider> as follow :

You can verify specific symptoms through CodeSandbox.
Mandatory reproduction URL (CodeSandbox or GitHub repository)
https://codesandbox.io/p/devbox/next-intl-bug-template-app-forked-pxyx5n?file=%2F.storybook%2Fpreview.tsx%3A10%2C7&workspaceId=3b663f32-b4b0-43b5-9910-dc5ef7e82cb5
Reproduction description
Steps to reproduce:

enter yarn sbin terminal
open 6006 port

Expected behaviour
Storybook must not make an error

You're seeing this error because you're invoking useMessages in preview.tsx outside of NextIntlClientProvider. Here's a fixed version.
I'll move this to a discussion since it's a usage question.


Put spans to the queue in non-blocking mode

Fixes #59

Hi, @alexey-stankevich, your PR looks good and we plan to merge it, but first will you use put_nowait() instead of put(..., block=FALSE)?  The first is more readable in my opinion. Also, we use put_nowait() in other wavefront python libraries we maintain, so it will make everything more consistent.  Thank you.

Closing this PR as it is superseded by PR #62.  This PR was too old to merge.  Thank you again for your contribution.


HIVE-25581: Iceberg storage handler should set common projection prun…

Failing tests seem to be the usual ones, as per HIVE-25578


BUG: When switching between online and offline on the scan item page, the video feed eventually fails to load when online

BUG: When switching between online and offline modes on the scan item page, the video feed eventually fails to load when online (as mentioned in the comments to #200). The screen appears to freeze, but this could be due to the non-functionality of the back button raised in #281.
DESCRIPTION
Steps to reproduce:

Navigate to /scanitem page
Switch between online and offline modes a few times

Expected behaviour:

The video feed should load when connected online

Observed behaviour:

The video feed fails to load after a few times

I moved this from in triage because I fixed it based on Kyle's comments on issue 200 which was in todo


informationGain return 0 always

hi, i try to implement the package on noetic distro, and the issue that i have is that the function informationGain that is use to the condition that clear centroids always give me 0, and the condition 0.0<0.2 delete the centroids always. i use hector_mapping to get the map, i don't think that this be the problem, if you have idea for the reason to the issues  I would appreciate.
i think that is for this condition
if(mapData.data[i] == -1 and norm(array(point)-point_of_index(mapData, i)) <= r):
infoGain += 1
but i don't all the process to get the condition.

def informationGain(mapData, point, r):
    gain = 0
    resolution = mapData.info.resolution
    width = mapData.info.width
    map_min_x = mapData.info.origin.position.x
    map_min_y = mapData.info.origin.position.y
    center_x = int(floor((point[0] - map_min_x) / resolution))
    center_y = int(floor((point[1] - map_min_y) / resolution))
    r_int = int(r / resolution)
    for idx_y in range(center_y - r_int, center_y + r_int + 1):
        for idx_x in range(center_x - r_int, center_x + r_int + 1):
            idx = idx_y * width + idx_x
            # skip grids out of map
            if idx < 0 or idx >= len(mapData.data):
                continue
            if mapData.data[idx] == -1:
                gain += 1
    return gain * resolution ** 2

I met the same problem with you and used this function to give me information gain, which works good. I am on Ubuntu 20.04 btw.

def informationGain(mapData, point, r):
    gain = 0
    resolution = mapData.info.resolution
    width = mapData.info.width
    map_min_x = mapData.info.origin.position.x
    map_min_y = mapData.info.origin.position.y
    center_x = int(floor((point[0] - map_min_x) / resolution))
    center_y = int(floor((point[1] - map_min_y) / resolution))
    r_int = int(r / resolution)
    for idx_y in range(center_y - r_int, center_y + r_int + 1):
        for idx_x in range(center_x - r_int, center_x + r_int + 1):
            idx = idx_y * width + idx_x
            # skip grids out of map
            if idx < 0 or idx >= len(mapData.data):
                continue
            if mapData.data[idx] == -1:
                gain += 1
    return gain * resolution ** 2

I met the same problem with you and used this function to give me information gain, which works good. I am on Ubuntu 20.04 btw.

Thanks a lot, this solves my problem.