External links prototype.

Added external_links and external_sites tables.
Added section for external_links on show_observation page under species_lists.
Added ajaxy controls for creation, editing and deletion of external_links.
Presently the owner of the observation can create links to any external_site; only members of the project associated with an external_site can add links to that site to arbitrary observations.
There is no API for grabbing these links yet.

In order to test this PR, one needs to create a project for MycoPortal, and an entry in the external_sites table (by hand unfortunately).  Then you should see controls for adding a link to MycoPortal on any observations you own.

Coverage increased (+0.1%) to 86.4% when pulling ad4c042cc9053c7df8b69bf99317ff945c818796 on external-links into 31cdaca0bc645e0ea3c130ba1c21c8c36500a2f4 on master.

If I'm understanding this correctly:here could be multiple external sites which actually go to the same place.

Coverage increased (+0.1%) to 86.422% when pulling 7f2a1fd37e6c38668a4f3e25b87b49721ccb6581 on external-links into 31cdaca0bc645e0ea3c130ba1c21c8c36500a2f4 on master.

Coverage increased (+0.1%) to 86.421% when pulling f997cf41659b63e2bebdfd1b3cbfa9b799fd20f7 on external-links into 31cdaca0bc645e0ea3c130ba1c21c8c36500a2f4 on master.

Coverage increased (+0.08%) to 86.374% when pulling 844f5b527e43552aa11d32bfbc87aa42a8c33f89 on external-links into 31cdaca0bc645e0ea3c130ba1c21c8c36500a2f4 on master.

Coverage increased (+0.08%) to 86.374% when pulling 96db220eaa525245c1c91ef14353dc69aa7e72c5 on external-links into 31cdaca0bc645e0ea3c130ba1c21c8c36500a2f4 on master.

Coverage increased (+0.05%) to 86.615% when pulling 70b7e114b18fa7cafec30f46fe72529f38c7b00c on external-links into da211074b6508ec565c346f89e4af456f2912e60 on master.

This has changed a bit in the latest version of content filters.
On Wed, Jan 4, 2017 at 8:34 AM, Joseph D. Cohen<EMAIL_ADDRESS>wrote:

@JoeCohen commented on this pull request.
In app/classes/query/initializers/observation_filters.rb
https://github.com/MushroomObserver/mushroom-observer/pull/261#pullrequestreview-15146286
:

 end

 # array of filters which are on (applied) in this query

 def on_obs_filters

   observation_filter_keys.each_with_object([]) do |filter, ons|

     ons << filter if is_on?(filter)

   end

 end

 # Does params[:x] == one of x's on_vals?  For example:

 # is_on?(:has_images) is true if params[:has_images] == "NOT NULL" || "NULL"

 def is_on?(filter_sym)

   return unless params[filter_sym]

   filter = send(filter_sym)

   filter[:on_vals].include?(params[filter_sym])

   !params[:has_specimen].nil? || !params[:has_images].nil?

maybe
params[:has_specimen] || params[:has_images]
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/261#pullrequestreview-15146286,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADE2tW6BiRwb-c4DfTQmI7nwia2MYAXNks5rO8oKgaJpZM4LYDRt
.

The whole procedure of adding a new filter is changed much in the newer
versions of content filters.
On Wed, Jan 4, 2017 at 8:49 AM, Joseph D. Cohen<EMAIL_ADDRESS>wrote:

@JoeCohen commented on this pull request.
In app/classes/content_filter.rb
https://github.com/MushroomObserver/mushroom-observer/pull/261#pullrequestreview-15149667
:

in order you want them to appear in advanced_filters

sql_cond:     predicate added to Query "where", when filter is on.  E.g.:

"observations.specimen IS #{params[:has_specimen]}"

To add a new Content Filter: (The leading asterisk (*) indicates

an unnecessary step for new observation filter -- it's done

automatically.)

Add tests, e.g., to TestUserContentFilter

Supplement fixtures as needed by added tests

Add a filter definition below, and add that definition to #filters below

Add a new checkbox_val method in User

In /config/locales/en.txt define text to be displayed before and next to

check boxes, using prefs_obs_filters_has_images: as a model.

* Supplement _prefs_filters.html.erb as needed

* Add filter to AccountController#prefs_types & #update_content_filter

* For Observation filter, supplement Query::Initializers::ObservationFilters

No longer done automatically. (Developer must add
observation_filter_parameter_declarations manually.) So asterisk should
be deleted.
For Observation filter, supplement Query::Initializers::
ObservationFilters
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/261#pullrequestreview-15149667,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADE2tYJF5UF2xEfkfjeJgwCPoXoRX0jhks5rO82tgaJpZM4LYDRt
.

Presumably this was to differentiate param == false from param == nil(?)  I
would like to clean all this up with a refactoring of
Query::Modules::Validation.  I think rubocop would faint if we were to run
it on this file.
On Wed, Jan 4, 2017 at 9:04 AM, Joseph D. Cohen<EMAIL_ADDRESS>wrote:

@JoeCohen commented on this pull request.
In app/classes/query/modules/validation.rb
https://github.com/MushroomObserver/mushroom-observer/pull/261#pullrequestreview-15152712
:

@@ -21,27 +21,42 @@ def validate_params
def validate_param(old_args, new_args, arg, arg_type)
arg_sym = arg.to_s.sub(/?$/, "").to_sym
optional = (arg != arg_sym)

val = pop_param_value(old_args, arg_sym)
unless val.blank?

 if arg_type.is_a?(Array)

   val = array_validate(arg_sym, val, arg_type.first)

begin

 val = pop_param_value(old_args, arg_sym)

 unless val.blank?

   if arg_type.is_a?(Array)

     val = array_validate(arg_sym, val, arg_type.first)

   else

     val = scalar_validate(arg_sym, val, arg_type)

   end

 end

 if !val.nil?

What about
if val
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/261#pullrequestreview-15152712,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADE2tVHXDKDWCxaPGUJUARGy-4z0WYumks5rO9ETgaJpZM4LYDRt
.

Coverage increased (+0.05%) to 86.614% when pulling f13ecdd0ecee7f2d48677b7ea2bf45debb71db9b on external-links into 4714c73f854aea7e52726a4644f3025a5e794a4a on master.

I resolved the conflicts, but now two tests are failing and I don't understand why.  I'm not sure where this work got left in particular with respect to Joe's concerns about potentially problematic uses of the new feature.

Coverage decreased (-0.05%) to 86.53% when pulling 974e0bb7111e10560c928cd41f50001655aaa030 on external-links into aec48b1c35842e3c50a4d677a981c86cec5c9f03 on master.

Coverage increased (+0.08%) to 86.652% when pulling 7c8700719b2b4a826a3cf6c9d008b73b8ea14a6d on external-links into 4428a3e54a20fa39995316bbce965d4c752e6ede on master.

Coverage increased (+0.07%) to 86.636% when pulling 6ce9e6cc47b6f156e999f4ad36a76e4ca65cc78c on external-links into 4428a3e54a20fa39995316bbce965d4c752e6ede on master.

Coverage increased (+0.05%) to 86.647% when pulling 2a7bcf730173afb0f4cf1d34de3963348130dc7a on external-links into 47b174a036fb7ff53267ad8cd3ed5fd8655c0d84 on master.


How to access the response status and request params in middleware?

I'm wanting to log some simple output for helping with debugging apps that use the API.  I have it showing the request and the URI but it would also be good to show the params and status code.  Like so:
For example:
200 GET /devices/1
  {
    id: 1
  }

404 GET /devices/999

I've tried putting my "spy" middleware at all levels of the middleware.json and dumping req but cannot find where the params or status code is populated.
Or is there a much better way to go about this?

DEBUG=strong-remoting:* should work!

^ @penguinpowernz
I'm going to close the issue, but please feel free to re-open if you think it's necessary. Just make sure to mention me in a comment so I can take a look right away (instead of having to wait a could months again :sweat:... sorry).

Oh forgot about this.. thanks.
That line did help me, but for custom logging of requests to the console I found this to be the solution:
module.exports = function() {
  return function(req, res, next) {
    var u = req.url
    res.on("finish", function() {
      console.log("["+timestamp()+ "] "+res.statusCode+ " "+req.method+" "+u);
    });

    next()
  }
}


Broadcast of second tx hangs

If you build a tx then broadcast, wait for the funds to confirm without changing tab etc. and then click build tx again and broadcast the broadcast page hangs. You can't move it or anything.

@wintercooled Am I doing it right?

Build tx
Broadcast
Click ok on successfully broadcasted
Don't touch it until confirms
Click build
Click broadcast

Yes, that hangs for me.
On 8 Dec 2017 19:15, "nopara73"<EMAIL_ADDRESS>wrote:

@wintercooled https://github.com/wintercooled Am I doing it right?

Build tx
Broadcast
Click ok on successfully broadcasted
Don't touch it until confirms
Click build
Click broadcast

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nopara73/HiddenWallet/issues/98#issuecomment-350347882,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYgLfWGnIXYlA5Ngb5eiSw7n6hcTAlngks5s-YrmgaJpZM4Q7aeX
.

Did you try it multiple times?

Three. I take it it doesn't hang for you?
On 8 Dec 2017 19:23, "nopara73"<EMAIL_ADDRESS>wrote:

Did you try it multiple times?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nopara73/HiddenWallet/issues/98#issuecomment-350349519,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYgLffOuS3uqqWW7_4XXLzkaf3SmZImZks5s-YypgaJpZM4Q7aeX
.

It doesn't.

Maybe try with the latest. (master branch from now on)

For the record I encountered this problem many times yesterday, I cannot reproduce it the way you mentioned, I just have to make transactions many times and it'll hang eventually. And I am working on solving this all day already. It's really tricky.

Fixed: https://github.com/nopara73/HiddenWallet/commit/7667fe3c028f7cf2889906f21e3958f2c0337736
Turnes out it was javascript brainfart...


Added async collection, wrapped up async transaction

Implemented async collection.
Implemented transaction methods in async database.
Modified tests.
#27

updated client with server API changes. (listCollections and listDatabase)


cassandra: add support for TimeWindowCompactionStrategy and tweak DTCS

TWCS is a new compaction strategy that replaces DTCS in >3.8
Change _EXPECTED_POINTS_PER_READ to 2000 to make sure that reading
a day of date reads only one sstable.
Change _MIN_ROW_SIZE_MS to 6 hours to make sure that we have too
many queries to do when reading points.

This change is

"- Change _MIN_ROW_SIZE_MS to 6 hours to make sure that we have too
many queries to do when reading points."
+not ?

Review status: 0 of 4 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

done

Review status: 0 of 4 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 4 of 4 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


statedb: Fix read-after-write bug

statedb: Fix read-after-write bug
The optimization in *txn to hold the last used index read transaction
to avoid a hash map lookup was broken as the write txn used for reading
was cloned, leading to not being able to read any of the future writes
in the same transaction.
Benchmark show that this optimization does not actually help, so solve
the problem by removing the optimization.
Before:
BenchmarkDB_RandomLookup-8       1000000              1471 ns/op
After:
BenchmarkDB_RandomLookup-8       1000000              1485 ns/op
Fixes: d0d4d46992bf ("statedb: Store index unique info in the index tree entry")
Note that v1.14 does not have the "StateDB v2.0", so it is not affected by this.
Fix a bug in the StateDB library that may have caused stale read after write. This may have potentially affected the L2 announcements feature and the node address selection.

/test


Add PyPI version badge to README

The README should display the current version of face-mask-detector
Closes #13

Awesome! Thanks for working on this! :heart:


Image successfully pushed can not be found in the webinterface

Description
It seems like our portus installation has disconnected from the registry, even though the link icon is still green on the registry page. However, newly pushed repositories and tags are not showing up in the web interface. It is accessible through the registry. So the upload definitely worked.
Steps to reproduce

Push an image to the registry
Go to the webinterface
The image is not showing

In addition, I'm seeing this error message on the registry every second:
time="2019-12-04T16:06:18Z" level=warning msg="error authorizing context: authorization token required" go.version=go1.7.6 http.request.host=portus.xxx http.request.id=4f41dc46-96f6-4f3e-8a19-869b2370674c http.request.method=GET http.request.remoteaddr=<IP_ADDRESS> http.request.uri="/v2/deploy/xxx/manifests/sha256:cdf70ac66018503de92cea923a5b14f38e9f9362c7d6803086f18d055a923191" http.request.useragent=Ruby instance.id=1c81fe94-e4af-4642-a019-a17898ba0145 vars.name="deploy/xxx" vars.reference="sha256:cdf70ac66018503de92cea923a5b14f38e9f9362c7d6803086f18d055a923191" version=v2.6.2-14-ga66a4c3
Deployment information
The deployment is done through docker-compose with an nginx reverse proxy in front of the setup.
Configuration:
You can get this information like this:

In bare metal execute: bundle exec rake portus:info.
In a container:

Using the development docker-compose.yml file: docker exec -it <container-id> bundle exec rake portus:info.
Using the production image: docker exec -it <container-id> portusctl exec rake portus:info.

version: "3.7"

services:
  portus:
    image: opensuse/portus:2.4
    restart: unless-stopped
    environment:
      - PORTUS_MACHINE_FQDN_VALUE=portus.xxx

      # DB. The password for the database should definitely not be here. You are
      # probably better off with Docker Swarm secrets.
      - PORTUS_DB_HOST=db
      - PORTUS_DB_DATABASE=portus_production
      - PORTUS_DB_PASSWORD=MKFuJvPZvjhp7apE
      - PORTUS_DB_POOL=5

      # Secrets. It can possibly be handled better with Swarm's secrets.
      - PORTUS_SECRET_KEY_BASE=b4a45d52e329d70f5e05893ced9f92575a3e85b74f6a35a8596c0739ff764fda71013ea2fe885f6510d75f80a8b5f8b1f44485f8b062cefe00766e545a60e7fa
      - PORTUS_KEY_PATH=/certificates/2019_key.pem
      - PORTUS_PASSWORD=J2o3ddRVnePRLYxU

      # SSL
      - PORTUS_PUMA_TLS_KEY=/certificates/2019_key.pem
      - PORTUS_PUMA_TLS_CERT=/certificates/2019_cert.pem

      - RAILS_SERVE_STATIC_FILES=false
    ports:
      - <IP_ADDRESS>:8063:3000
    links:
      - db
    volumes:
      - /srv/persistence/portus/certs:/certificates:ro
      - /srv/persistence/portus/assets:/srv/Portus/public
    extra_hosts:
      - "portus.xxx:<IP_ADDRESS>"
    deploy:
      placement:
        constraints: [node.hostname == srv-007]
    logging:
      driver: "gelf"
      options:
        gelf-address: "tcp://graylog.xxx:5555"
        tag: "portus-frontend"
        mode: non-blocking
        max-buffer-size: 1g

  background:
    image: opensuse/portus:2.4
    restart: unless-stopped
    environment:
      - CCONFIG_PREFIX=PORTUS
      - PORTUS_MACHINE_FQDN_VALUE=portus.xxx

      # DB. The password for the database should definitely not be here. You are
      # probably better off with Docker Swarm secrets.
      - PORTUS_DB_HOST=db
      - PORTUS_DB_DATABASE=portus_production
      - PORTUS_DB_PASSWORD=MKFuJvPZvjhp7apE
      - PORTUS_DB_POOL=5

      # Secrets. It can possibly be handled better with Swarm's secrets.
      - PORTUS_SECRET_KEY_BASE=b4a45d52e329d70f5e05893ced9f92575a3e85b74f6a35a8596c0739ff764fda71013ea2fe885f6510d75f80a8b5f8b1f44485f8b062cefe00766e545a60e7fa
      - PORTUS_KEY_PATH=/certificates/2019_key.pem
      - PORTUS_PASSWORD=J2o3ddRVnePRLYxU

      - PORTUS_BACKGROUND=true
    links:
      - db
    volumes:
      - /srv/persistence/portus/certs:/certificates:ro
    extra_hosts:
      - "portus.xxx:<IP_ADDRESS>"
    deploy:
      placement:
        constraints: [node.hostname == srv-007]
    logging:
      driver: "gelf"
      options:
        gelf-address: "tcp://graylog.xxx:5555"
        tag: "portus-backend"
        mode: non-blocking
        max-buffer-size: 1g

  db:
    image: library/mariadb:10.0.23
    restart: unless-stopped
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0
    environment:
      - MYSQL_DATABASE=portus_production
      - MYSQL_ROOT_PASSWORD=MKFuJvPZvjhp7apE
    volumes:
      - /srv/persistence/portus/database:/var/lib/mysql
    deploy:
      placement:
        constraints: [node.hostname == srv-007]

  registry:
    image: library/registry:2.6
    restart: unless-stopped
    command: ["/bin/sh", "/etc/docker/registry/init"]
    environment:
      # Authentication
      REGISTRY_AUTH_TOKEN_REALM: https://portus.xxxx/v2/token
      REGISTRY_AUTH_TOKEN_SERVICE: portusxxx
      REGISTRY_AUTH_TOKEN_ISSUER: portus.xxxx
      REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE: /secrets/2019_bundle.pem

      # SSL
      REGISTRY_HTTP_TLS_CERTIFICATE: /secrets/2019_cert.pem
      REGISTRY_HTTP_TLS_KEY: /secrets/2019_key.pem

      # Portus endpoint
      REGISTRY_NOTIFICATIONS_ENDPOINTS: >
        - name: portus
          url: https://portus.xxx/v2/webhooks/events
          timeout: 2000ms
          threshold: 5
          backoff: 1s
    volumes:
      - /srv/persistence/portus/registry/storage:/var/lib/registry
      - /srv/persistence/portus/certs:/secrets:ro
      - /srv/persistence/portus/registry/config/config.yml:/etc/docker/registry/config.yml:ro
      - /srv/persistence/portus/registry/init/init:/etc/docker/registry/init:ro
    ports:
      - <IP_ADDRESS>:8064:5000
      - <IP_ADDRESS>:8065:5001 # required to access debug service
    links:
      - portus:portus
    deploy:
      placement:
        constraints: [node.hostname == srv-007]
    logging:
      driver: "gelf"
      options:
        gelf-address: "tcp://graylog.xxx:5555"
        tag: "portus-registry"
        mode: non-blocking
        max-buffer-size: 1g

Portus version: 2.4.3
What's weird is that it used to work and, as far as I know, nothing changed.

After a reboot of all containers, everything seems to be working again. Not sure what the issue was.

Description
It seems like our portus installation has disconnected from the registry, even though the link icon is still green on the registry page. However, newly pushed repositories and tags are not showing up in the web interface. It is accessible through the registry. So the upload definitely worked.
Steps to reproduce
1. Push an image to the registry

2. Go to the webinterface

3. The image is not showing

In addition, I'm seeing this error message on the registry every second:
time="2019-12-04T16:06:18Z" level=warning msg="error authorizing context: authorization token required" go.version=go1.7.6 http.request.host=portus.xxx http.request.id=4f41dc46-96f6-4f3e-8a19-869b2370674c http.request.method=GET http.request.remoteaddr=<IP_ADDRESS> http.request.uri="/v2/deploy/xxx/manifests/sha256:cdf70ac66018503de92cea923a5b14f38e9f9362c7d6803086f18d055a923191" http.request.useragent=Ruby instance.id=1c81fe94-e4af-4642-a019-a17898ba0145 vars.name="deploy/xxx" vars.reference="sha256:cdf70ac66018503de92cea923a5b14f38e9f9362c7d6803086f18d055a923191" version=v2.6.2-14-ga66a4c3
Deployment information
The deployment is done through docker-compose with an nginx reverse proxy in front of the setup.
Configuration:
You can get this information like this:
* In bare metal execute: `bundle exec rake portus:info`.

* In a container:

  * Using the development `docker-compose.yml` file: `docker exec -it <container-id> bundle exec rake portus:info`.
  * Using the [production image](https://hub.docker.com/r/opensuse/portus/): `docker exec -it <container-id> portusctl exec rake portus:info`.

version: "3.7"

services:
  portus:
    image: opensuse/portus:2.4
    restart: unless-stopped
    environment:
      - PORTUS_MACHINE_FQDN_VALUE=portus.xxx

      # DB. The password for the database should definitely not be here. You are
      # probably better off with Docker Swarm secrets.
      - PORTUS_DB_HOST=db
      - PORTUS_DB_DATABASE=portus_production
      - PORTUS_DB_PASSWORD=MKFuJvPZvjhp7apE
      - PORTUS_DB_POOL=5

      # Secrets. It can possibly be handled better with Swarm's secrets.
      - PORTUS_SECRET_KEY_BASE=b4a45d52e329d70f5e05893ced9f92575a3e85b74f6a35a8596c0739ff764fda71013ea2fe885f6510d75f80a8b5f8b1f44485f8b062cefe00766e545a60e7fa
      - PORTUS_KEY_PATH=/certificates/2019_key.pem
      - PORTUS_PASSWORD=J2o3ddRVnePRLYxU

      # SSL
      - PORTUS_PUMA_TLS_KEY=/certificates/2019_key.pem
      - PORTUS_PUMA_TLS_CERT=/certificates/2019_cert.pem

      - RAILS_SERVE_STATIC_FILES=false
    ports:
      - <IP_ADDRESS>:8063:3000
    links:
      - db
    volumes:
      - /srv/persistence/portus/certs:/certificates:ro
      - /srv/persistence/portus/assets:/srv/Portus/public
    extra_hosts:
      - "portus.xxx:<IP_ADDRESS>"
    deploy:
      placement:
        constraints: [node.hostname == srv-007]
    logging:
      driver: "gelf"
      options:
        gelf-address: "tcp://graylog.xxx:5555"
        tag: "portus-frontend"
        mode: non-blocking
        max-buffer-size: 1g

  background:
    image: opensuse/portus:2.4
    restart: unless-stopped
    environment:
      - CCONFIG_PREFIX=PORTUS
      - PORTUS_MACHINE_FQDN_VALUE=portus.xxx

      # DB. The password for the database should definitely not be here. You are
      # probably better off with Docker Swarm secrets.
      - PORTUS_DB_HOST=db
      - PORTUS_DB_DATABASE=portus_production
      - PORTUS_DB_PASSWORD=MKFuJvPZvjhp7apE
      - PORTUS_DB_POOL=5

      # Secrets. It can possibly be handled better with Swarm's secrets.
      - PORTUS_SECRET_KEY_BASE=b4a45d52e329d70f5e05893ced9f92575a3e85b74f6a35a8596c0739ff764fda71013ea2fe885f6510d75f80a8b5f8b1f44485f8b062cefe00766e545a60e7fa
      - PORTUS_KEY_PATH=/certificates/2019_key.pem
      - PORTUS_PASSWORD=J2o3ddRVnePRLYxU

      - PORTUS_BACKGROUND=true
    links:
      - db
    volumes:
      - /srv/persistence/portus/certs:/certificates:ro
    extra_hosts:
      - "portus.xxx:<IP_ADDRESS>"
    deploy:
      placement:
        constraints: [node.hostname == srv-007]
    logging:
      driver: "gelf"
      options:
        gelf-address: "tcp://graylog.xxx:5555"
        tag: "portus-backend"
        mode: non-blocking
        max-buffer-size: 1g

  db:
    image: library/mariadb:10.0.23
    restart: unless-stopped
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0
    environment:
      - MYSQL_DATABASE=portus_production
      - MYSQL_ROOT_PASSWORD=MKFuJvPZvjhp7apE
    volumes:
      - /srv/persistence/portus/database:/var/lib/mysql
    deploy:
      placement:
        constraints: [node.hostname == srv-007]

  registry:
    image: library/registry:2.6
    restart: unless-stopped
    command: ["/bin/sh", "/etc/docker/registry/init"]
    environment:
      # Authentication
      REGISTRY_AUTH_TOKEN_REALM: https://portus.xxxx/v2/token
      REGISTRY_AUTH_TOKEN_SERVICE: portusxxx
      REGISTRY_AUTH_TOKEN_ISSUER: portus.xxxx
      REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE: /secrets/2019_bundle.pem

      # SSL
      REGISTRY_HTTP_TLS_CERTIFICATE: /secrets/2019_cert.pem
      REGISTRY_HTTP_TLS_KEY: /secrets/2019_key.pem

      # Portus endpoint
      REGISTRY_NOTIFICATIONS_ENDPOINTS: >
        - name: portus
          url: https://portus.xxx/v2/webhooks/events
          timeout: 2000ms
          threshold: 5
          backoff: 1s
    volumes:
      - /srv/persistence/portus/registry/storage:/var/lib/registry
      - /srv/persistence/portus/certs:/secrets:ro
      - /srv/persistence/portus/registry/config/config.yml:/etc/docker/registry/config.yml:ro
      - /srv/persistence/portus/registry/init/init:/etc/docker/registry/init:ro
    ports:
      - <IP_ADDRESS>:8064:5000
      - <IP_ADDRESS>:8065:5001 # required to access debug service
    links:
      - portus:portus
    deploy:
      placement:
        constraints: [node.hostname == srv-007]
    logging:
      driver: "gelf"
      options:
        gelf-address: "tcp://graylog.xxx:5555"
        tag: "portus-registry"
        mode: non-blocking
        max-buffer-size: 1g

Portus version: 2.4.3
What's weird is that it used to work and, as far as I know, nothing changed.

Hi @danielbecker This often happens because of a problem related to the webhooks sent from registry, to portuys, as notifications of registry events (like docker push/pulls)


Running superset with https

Is there a way to run superset application using https locally?
Basically I want to embed superset iframe in one on my website and iframe is not allowing http superset link in my https website with iframe.
Any help is appreciated.

We run Superset behind Traefik that terminates TLS. This could of course be solved in the same way by nginx or Apache HA-proxy, but regardless, doing this with a reverse proxy is the easiest way.

Caddy provides a quick/easy way to get HTTPS going via a reverse proxy: https://caddyserver.com/docs/quick-starts/https#the-reverse-proxy-command

While it is possible to handle tls in gunicorn, I highly suggest setting up a reverse proxy like nginx to handle tls certs and terminate SSL there. Nginx or similar technologies are just much better at handling this type of thing than python application servers

If you really want to go down the gunicorn route, here's some info https://stackoverflow.com/questions/7406805/running-gunicorn-on-https


Some keyboard keys not working when cursor is placed next to the quotations

I'm using Phptorm 2019.3 and Windows 10.
When my cursor is placed next to the quotations, I can't press some keyboard keys like Enter or open parenthesis.

As shown in above picture, you can't press enter right there and it doesn't allow you to use some specific keywords.
Also I can't use open parenthesis in alpine directives.
Please reproduce it and tell me if it's my idea's issue

Yeah, this is a known issue. I don't have a perfect solution for it, but I have an idea that I'll try to include in the next release.


TypeError: Cannot read properties of undefined (reading 'dmmf')

I am using Prismock and am getting this error when creating a new PrismaClient:
 FAIL  src/lessons/views.test.ts
  ● Test suite failed to run

    TypeError: Cannot read properties of undefined (reading 'dmmf')

       7 | export const db =
       8 |   globalForPrisma.prisma ||
    >  9 |   new PrismaClient({
         |   ^
      10 |     log:
      11 |       process.env.NODE_ENV === "development"
      12 |         ? ["query", "error", "warn"]

      at Prismock.generate (../../node_modules/prismock/src/lib/client.ts:67:84)
      at new Prismock (../../node_modules/prismock/src/lib/client.ts:59:12)
      at Object.<anonymous> (../db/index.ts:9:3)

prismock verson<EMAIL_ADDRESS>prisma version<EMAIL_ADDRESS>Is there a version of the libraries that is tested together that is known to work?

Hello @ishaangandhi, but any chance can you submit the code you use to mock prisma?
Also, if you didn’t yet, pelase have a look at https://github.com/morintd/prismock/issues/895.


DOC-2520: Remove duplicate sidenav links

Reasoning in https://docs.google.com/spreadsheets/d/1JLuOZsbMsFcZib8brtKSw0fZyAas6_saHAR0X9IpPa0/edit#gid=0.

This change is


[alf] project make

In codespaces I used the command "make" and then went to the source file and tried to both run and compile it and it failed both times

Same thing happens in Intellij, even if I follow the instructions in Readme

You compilation command is incorrect, please look at the Makefile. You can use the codespace to test.

Please post the issue from now on https://github.com/UPB-FILS-ALF/questions


refactor(compileStyle): remove unnecessary variable

This is necessary because the raw id could already be a short id.


Have version info come from package.json

https://github.com/JiaHua-Zou/Jia_SSG/blob/main/index.js#L7 is hard-coding the version to an incorrect value.  I would pull it directly from the package.json file, so it's always recent:
const { version } = require('./package.json');
// version is now the correct version string

Have updated the package.json to call the correct version when -v or --version is used.


github 404 on Win Desktop link.

Not reproducible anymore. On new releases, sometimes the binaries are not yet available on GitHub even though the links are updated.

I think there's still something wrong here. It shows the latest version even when it's in draft mode. I suspect it's taking it from the tag, which is wrong. It should only show the most recent stable release.


sometimes audio cues don't play

this happens in Insider's and has been around for a long time
I can reproduce in the Help: List Audio Cues quickpick and in the diff editor. I am not sure of a pattern. We request the sound to play and it doesn't happen.
https://user-images.githubusercontent.com/29464607/233163607-5061833b-42ac-4f29-99c0-ee1d2a9982ef.mov

fixed!


how to inference with a video

Is there any video inference demo?

We've updated an video inference example, please check out the code here.


Video Player not working with live youtube videos.

Sorry i've opened a ticket in bitbucket before i realize i was suppose to do it here.
anyway,
Is live youtube stream even supported by your video player?
I was digging into the chillplayer demo code, and it looks like "url_encoded_fmt_stream_map" is always empty with live videos.
I read online that we should use "hlsvp" parameter instead,
but i was unable to make the live video bind to the videoplayer.
appreciate any help.
thanks

There is nothing preventing you from streaming a video file from YouTube. The Chill Player shows a XAML markup extension that retrieves and parses the web page to get the correct URL for playback. That is obviously not an officially supported way of getting YouTube videos for your users but you are free to do it nonetheless. It's really just a matter of getting a valid stream URL for playback which is entirely up to the developer as to the URL you pass the player. Ideally you would do it through the YouTube API for a production mobile app. I'm sorry I am not familiar with their API but they do have streaming documentation located here.


ioredis is using hiredis parser, however "dropBufferSupport" is disabled

Hi !
I see a lot of these messages in my scality s3 log:
2017-03-14T17:29:02+00:00 ildehpsca01 scality-s3[11656]: [WARN] ioredis is using hiredis parser, however "dropBufferSupport" is disabled. It's highly recommanded to enable this option. Refer to https://github.com/luin/ioredis/wiki/Improve-Performance for more details.
Can I do something about it or should I just ignore them ?
I am using docker, version GA6.4.2.
Regards

@Tiduster This can be ignored. We are in the process of removing this module as our use case does not need hiredis parser.

Thank you.

@Tiduster Please follow https://github.com/scality/utapi/issues/120 for updates.


Add gaussian noise

Is your feature request related to a problem?
A popular way to train various kinds of generative neural networks is to add gaussian noise to an image and have them restore the original.
Desired solution

Method add_gaussian_noise on Image
Parameter standard_deviation to adjust the standard deviation of the noise
Raise error if standard_deviation is below 0

Possible implementation:

Create a new image with the same dimensions as the original containing only the noise:

from PIL import Image as PILImage

img_noise = PILImage.effect_noise((image.width, image.height), standard_deviation)

Blend it with the original image using Image.blend

Possible alternatives (optional)
No response
Screenshots (optional)
No response
Additional Context (optional)
No response

:tada: This issue has been resolved in version 0.15.0 :tada:
The release is available on:

v0.15.0
GitHub release

Your semantic-release bot :package::rocket:


Add Contact link to the footer

We still need a Contact link in the footer, but it should take the user to an individual site adoc page located here:
https://github.com/cppalliance/site-docs/tree/develop/site-pages

A link was added in #709 but unsure if it's the right link


Fix [ban]: wrong logic matching deeply nested methods

PR checklist

[ ] Addresses an existing issue: #0000
[x] New feature, bugfix, or enhancement

[x] Includes tests

[ ] Documentation update

Overview of change:
Fix a bug where a.b.c() may also match with a.c().
Is there anything you'd like reviewers to focus on?

CHANGELOG.md entry:

[bugfix] ban: Properly match deeply nested methods

Thanks for your interest in palantir/tslint, @zhouhaoyu! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.

Note: this would be a breaking change, as some users may be accidentally relying on the old (technically incorrect) behavior. This PR will have to wait until TSLint is ready to merge in PRs for a next major version.
Generally it'd be better to have an issue filed before a PR for changes, but this seems small enough to discuss here. Great catch @zhouhaoyu!

Any idea when this will be released?

/cc @adidahiya

We usually treat fixes to rule behavior like this as non-breaking, even though users might be relying on the old faulty behavior. I just want to confirm that the false positive existed before this change and then I'll merge this.


Post cache takes 30 seconds even if cache was hit

This takes a substantial chunk of our build times. It should not even take a millisecond because the cache was hit there is no need to do anything.

Hi @petkaantonov,
This occurs because the post step is expected to take time in seconds as it resolves inputs and paths and we can’t do much about it.
To take care of such customer asks, we released two new actions actions/cache/restore and actions/cache/save in beta mode for customers to test. The save action can be used with if condition to check if the cache-hit is not equal to true hence skipping the step entirely without evaluating anything.
Please do try this out and let us know if it solves your problem.
Links for your reference-

Discussion with use cases
Beta release
Usage and Feedback

Thanks, those will work


Smart autocompletion don't work

Summary
Smart autocompletion don't work, I've recorded a short video to illustrate it.

Extension version
1.0.8
VS Code version
1.61.0
Ansible Version
$ ansible --version
ansible [core 2.11.5]
  config file = /home/dss/ansiblewin/ansible.cfg
  configured module search path = ['/home/dss/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.9/dist-packages/ansible
  ansible collection location = /home/dss/.ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
  jinja version = 3.0.1
  libyaml = True

OS / Environment
vscode Version: 1.61.0 (user setup)
Commit: ee8c7def80afc00dd6e593ef12f37756d8f504ea
Date: 2021-10-07T18:13:09.652Z
Electron: 13.5.1
Chrome: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.19042
I tried to use this plugin with Remote - SSH
Plugins installed local:

Plugins installed on remote:

Remote system:
Debian 11
/usr/bin/python3 --version
Python 3.9.2
pip3 list
Package             Version
ansible             4.6.0
ansible-core        2.11.5
ansible-lint        5.2.0
bcrypt              3.2.0
bracex              2.1.1
certifi             2020.6.20
cffi                1.14.6
chardet             4.0.0
colorama            0.4.4
commonmark          0.9.1
cryptography        3.3.2
dbus-python         1.2.16
distro-info         1.0
enrich              1.2.6
httplib2            0.18.1
idna                2.10
Jinja2              3.0.1
jmespath            0.10.0
MarkupSafe          2.0.1
packaging           21.0
paramiko            2.7.2
pip                 21.2.4
pycparser           2.20
pycurl              <IP_ADDRESS>
Pygments            2.10.0
PyGObject           3.38.0
PyNaCl              1.4.0
pyparsing           2.4.7
PySimpleSOAP        1.16.2
python-apt          2.2.1
python-debian       0.1.39
python-debianbts    3.1.0
pyvmomi             7.0.2
PyYAML              5.4.1
reportbug           7.10.3+deb11u1
requests            2.25.1
resolvelib          0.5.4
rich                10.12.0
ruamel.yaml         0.17.16
ruamel.yaml.clib    0.2.6
setuptools          52.0.0
six                 1.16.0
tenacity            8.0.1
unattended-upgrades 0.1
urllib3             1.26.5
wcmatch             8.2
wheel               0.34.2
Relevant log output
No response

It is indeed strange. I got used to ctrl+space so I never noticed. I'll investigate it.

OK, so I've investigated it, and it looks like it is not exactly a bug
Thank you, Tomasz, for researching. Will you create bug (or missing feature) in VS Code tracker?

And I want to say great thanks for this plugin, Tomasz! We waited for his appearance for many years, starting with Ansible 1 =) Its perfect, even with manual autocomplete! Thanks again! =) Old deprecated Microsoft plugin for Ansible was much worse...

Thanks Dmitry! The missing feature is not on the VS Code part, but my plugin. Anyway, RedHat folks seem to have found a solution. Try adding this to your configuration JSON:
"[ansible]": {
    "editor.quickSuggestions": {
        "comments": true,
        "other": true,
        "strings": true
    }
}

Now it works, but everywhere.
I think, is better to remove |"comments": true| , because who needed in IntelliSense while typing comments?
And is there any possibility to disable IntelliSense  while typing names of the tasks?

name: And IntelliSense starts to work when I typing this task name...

If it is impossible, this is not so scary... As for me, it became much better... =) Thank you very much!

Yes, enabling suggestions on comments is probably unnecessary. As for disabling suggestions while typing names - these are provided by VS Code itself, and extension cannot influence it in that way. As I described above, the perfect solution would be to expose symbols, which would trigger the suggestions.


Clarifications about the Bower requirement?

report.html requires <script src="./bower_components/d3/d3.js"></script>
Can you clarify in the docs on how we are supposed to retrieve these bower components?
(Also, it seems that newer projects don't recommend Bower anymore.)

Please see: https://github.com/acrolinx/acrolinx-scale#how-set-up-scale to get scale running.
Acrolinx supports a new way of presenting the data, called Content-Analyse-Dashboard.
To discuss your use case, please contact the Acrolinx Support.


Releases on NuGet vs Releases on GitHub

So the latest release on this project's GitHub is Nov 1, 2016.
2 days ago NPoco showed up on NuGet with a version 3.8.0
There's no info I can find about 3.8.0 on this GitHub repository.  It doesn't show up in Tags or Releases.
So, my request is:

Please start posting Release Notes for each version here. (I found the release notes on this Wiki, but they aren't updated for 3.8.0)
Please Tag each release so that when we get a new package on NuGet, we can find the associated source code here.

Thanks

The link to the release notes from NuGet are as shown:

They have always been here:
https://github.com/schotime/NPoco/wiki/Release-Notes
When in doubt look at the commits.

Thanks !


Compatibility Renderer Soft Shadows at locked at PCF5 at runtime

Godot version
4.2 beta 1
System information
Godot v4.2.beta (ee118e7ff) - Windows 10.0.22621 - GLES3 (Compatibility) - AMD Radeon RX 6600 (Advanced Micro Devices, Inc.; 31.0.21031.1005) - Intel(R) Core(TM) i3-10105F CPU @ 3.70GHz (8 Threads)
Issue description
Soft Shadows change in the editor properly, however when running the project, the Soft Shadows are locked at PCF5 (Directional and Spot, Omni doesn't have PCF implemented yet.)
Steps to reproduce
Examine soft shadows and compare between editor and runtime
Minimal reproduction project
N/A

Probably the same fix as https://github.com/godotengine/godot/pull/83141


Add loadBalancerIP and loadBalancerClass options for shared ingressController service

Please ensure your pull request adheres to the following guidelines:

[x] For first time contributors, read Submitting a pull request
[x] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[x] If your commit description contains a Fixes: <commit-id> tag, then
please add the commit author[s] as reviewer[s] to this issue.
[x] All commits are signed off. See the section Developer’s Certificate of Origin
[x] Provide a title or release-note blurb suitable for the release notes.
[x] Thanks for contributing!

This pull request adds configuration options for the loadBalancerClass and loadBalancerIP fields in the Service object created for cilium's ingress controller when ingressController.loadbalancerMode is set to shared.
Previously, there was no option to configure these options, which makes it difficult for me to use the chart in my situation. I have to manually delete and recreate the service, since the field cannot even be edited with kubectl edit.
Sorry about the commit titles. If this change is approved, would appreciate a squash and merge with a better title.
Add loadBalancerIP and loadBalancerClass options for shared ingressController service.

Bump! Really want this.

/test

/test

Test failure seems like a flake connecting to the apisever for one single test in one run. I'm going to go and say that this is ok to merge.
The run was https://jenkins.cilium.io/job/Cilium-PR-K8s-1.25-kernel-4.19/638/, and the failure message was
error: unable to upgrade connection: Authorization error (user=kube-apiserver-kubelet-client, verb=create, resource=nodes, subresource=proxy)
Given that this change has no effect by default, it's safe to say this is a flake. Labeling as ok-to-merge.

Test failure seems like a flake connecting to the apisever for one single test in one run. I'm going to go and say that this is ok to merge.
The run was https://jenkins.cilium.io/job/Cilium-PR-K8s-1.25-kernel-4.19/638/, and the failure message was
error: unable to upgrade connection: Authorization error (user=kube-apiserver-kubelet-client, verb=create, resource=nodes, subresource=proxy)

FYI, that is known flake https://github.com/cilium/cilium/issues/15455, for which Cilium is known to be the culprit.


[Fab] Add styles to make size property work with extended property

[X] I have followed (at least) the PR section of the contributing guide.

Closes https://github.com/mui-org/material-ui/issues/13891

💯


Switch github icon to RHD icon

@paulrobinson is there a RHD font icon we can use?

@insectengine can you help Pete?

Duplicate of #75


Revamp NewApplicationWizard

Looks good. Do you think this should be merged in release/2.0.x as well?

Hi Matt, there was one issue with your commit which prevented compilation of the IDE sources against 2.8 compiler. I fixed it, and already pushed the change in release/scala-ide-2.0.x branch, but it would be good if you could take a look at it and see if it's good (maybe there is a better way).
Here is the link to my commit changeset
https://github.com/scala-ide/scala-ide/commit/2d82c80bc1473f1da781155437ed810b9d52fefc
By the way, did you get a notification of this commit? I'm asking because in my commit message I added your GitHub id, but I wonder if you got a notification :)

Ok, I reverted my change and added the explicit import to Manifest. Thanks a lot Matt for your feedback!
Here is the changeset
https://github.com/scala-ide/scala-ide/commit/0f1c70ed3148111313dda6f7f1201257e9e259f3
I think this pull request can be closed now, right?


Revoke celery tasks when a poll is deleted through admin.

@johngian r?
With this small snippet we can revoke the celery tasks (if any) before deleting the objects.

Coverage decreased (-0.05%) to 91.374% when pulling fea7ae2aeb6977aa783f3fb712a9e213b7dc0a05 on akatsoulas:delete-poll-revoke-task into 4e3245b28055149d1b33e9f1d011f6f4ea65006e on mozilla:master.

r+


Load Video only when clicked

To prevent big pageload when several videos are embedded, i'm trying to figure out how to load the video when the user clicks on the video-thumbnail. By now plyr is setting up all videos when i click on one thumbnail.

@moesphemie  have you tried to add preload attribute?
`<video poster="pathToPoster" controls preload="none">

`

unsubscribe
On Aug 12, 2017 4:23 AM, "Pablo Rodrigues Nunes"<EMAIL_ADDRESS>wrote:

@moesphemie https://github.com/moesphemie have you tried to add preload
attribute?
<video poster="pathToPoster" controls *preload="none"*>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sampotts/plyr/issues/582#issuecomment-321935796, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASN79w8KfCZAmi_6ebrs1F9WN1GaMwRks5sXNtYgaJpZM4NZNeV
.


feat!: Migrate firebase_ml_vision to sound null safety

Description

Updated package to sound null-safety.
Updated example to sound null-safety.
Addressed various TODOs throughout the project.

I only have an Android emulator available to me for the next couple of weeks so it'd be good if someone could test the example project on iOS.
Related Issues
https://github.com/FirebaseExtended/flutterfire/discussions/4182
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[x] Yes, this is a breaking change.
[ ] No, this is not a breaking change.

@AlexHartford would you mind resolving the conflicts, sorry. I took a look at doing it myself but wasn't too familiar with the changes done so didn't want to break your PR 🙃

Handled the merge conflicts. Let me know if there's anything else you need! 😁

Any plans to complete the merge soon?

This has now been published to pub.dev - thanks everyone.


BUG-Landsat-8-9-masks

Describe the bug
When using Landsat 8 and 9 the masks are showing results not consistent with the behaviour of the software when using Landsat 4, 5 and 7. This only happens when using the MIX option for the segmentation.
Additional context
Probably related to the threshold specified for the BAR index (SWIR) when using the MIX option and the difference in the band used for the SWIR in Landsat 8-9 compare to Landsat 4-5

A possible solution is testing otsu thresholding for the bar index too or find the correct threshold to use. Also check how the bar tracking is implemented to see what threshold is using.

619799b reverted the changes to the segmentation process, because otsu thresholding does not give expected resutls #


extracting pointclouds of multiple cameras

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ R200 / F200 / SR300 / ZR300 / D400 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{Win (8.1/10) / Linux (Ubuntu 14/16/17) / MacOS

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
PC/Raspberry Pi/ NVIDIA Jetson / etc..

SDK Version
{ legacy / 2.. }

Language
{C/C#/labview/nodejs/opencv/pcl/python/unity }

Segment
{Robot/Smartphone/VR/AR/others }

Issue Description
Hello,
I am currently working on synchronizing multiple cameras to obtain point clouds from each of them when working simultaneously. To achieve this, I require both depth and color images from each camera. My question is whether hardware synchronization is necessary for this task or if it can be accomplished through software synchronization.
I came across the multicam example, but it rendered a frameset where depth and color frames were not separate variables. I plan to try separating them soon to assess the impact. I have also reviewed previous discussions, but they did not alleviate my uncertainty about which synchronization method to choose.
I would greatly appreciate your assistance and advice on this matter.
Thank you for your time and consideration.
Kind regards,
Nima Roshandel

Hi @Nimaro76  RGB color cannot be synced by hardware synchronization, but the RealSense SDK has mechanisms for synching depth and color.  When depth and color FPS speed is the same then sync between them should automatically take place.
You can help to ensure that depth and RGB FPS remain the same by having auto-exposure = true and setting to false an RGB option called Auto-Exposure Priority.  When auto-exposure is true and auto-exposure priority is false then the SDK will try to enforce a constant FPS for both.
It is not a necessity to use hardware sync when generating point clouds from multiple cameras though.   For example, at the link below is a guide for doing so in ROS without sync and combining the separate clouds from each individual camera on the same computer into a single merged cloud.
https://github.com/IntelRealSense/realsense-ros/wiki/Showcase-of-using-2-cameras
This merging of pointclouds can also be done with cameras that are attached to different computers instead of all being attached to the same computer.
https://github.com/IntelRealSense/realsense-ros/wiki/showcase-of-using-3-cameras-in-2-machines

thank you for your reply,
for my project, I simply don't want to use ROS. the preferred approach would be using a single c++ algorithm for this purpose. for example, expanding the current multicam example to be able to get the point clouds and merge them. I was wondering if this expansion is possible.  and I would like to use a single computer for running the algorithm.

If you have a Windows computer and are able to make use of commercial software then the RealSense-compatible scanning tool RecFusion Pro could do that.
https://www.recfusion.net/
An open-source C++ alternative would be to use the RealSense SDK's rs-kinfu example.  Instead of combining together pointclouds from multiple cameras, you can move a single camera around the scene and progressively build up a pointcloud with 'frame fusion'.
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv/kinfu

Unfortunately, it is not in the nature of my project to use softwares in order to perform this task. there are two necessary features that should be in the algorithm:

it has to be multi camera because the idea is segmenting the frames of each camera to do objection detection and further tasks
the algorithm has to be running on one computer . so we want to have like 4 cameras connected to Xilinx board and then run that C++ algorithm to get the point clouds of each of theses cameras that are running  simultaneously.

with theses two key features that are required, do we need to do hardware synchronization? or software synchronization is still a possible choice
thank you for your reply

Hardware sync is not a necessity for pointcloud merging, as demonstrated by the ROS example and by RecFusion Pro.
If 4 cameras are going to be active simultaneously though then you will need a computer specification that can cope with the amount of computing resources that 4 cameras attached to the same machine will consume.  For that number of cameras, a computing device with a CPU equivalent to an Intel i7 would be recommended.
If Global Time is true (it is true by default on 400 Series cameras) then it will attempt to match up multiple cameras to a common timestamp, as described at https://github.com/IntelRealSense/librealsense/pull/3909

Hi @Nimaro76  Do you require further assistance with this case, please?  Thanks!

thank you, I will contact further if I had an issue during implementation.
kind regards
Nima

You are very welcome, @Nimaro76 - thanks very much for the update.  Please do feel free to contact us if you have further issues.  Good luck!


[Marker.io] [Mobile] orange dots are shown in the files in  "featured projects" section

Steps to reproduce:

open home page in mobile browsers.scroll down to featured projects section
2)compare with figma

Actual result: orange dots are shown .figma does not show it for mobiles. also when the user will tapon the tile, they will be taken to respective page so I think it should not be there
Expected result: please check this if we still want to show it.

Reported by: vinod<EMAIL_ADDRESS>- Contact via Marker.io
Source URL: https://kensway.webflow.io/
Issue details: Open in Marker.io
Device typemobileBrowserSafari 17.5Screen Size393 x 852OSiOS 17.5.1Viewport Size393 x 659Pixel Ratio@3x

🤖 Marker.io bot - 💬 Vinod commented:

applicable for tablets too

Reply here

🤖 Marker.io bot - 💬 Vinod commented:

fixed for mobile and tablet in portrait mode.
it can be observed in portrait mode of some tablets or the landscape mode of some tablets.
when my real tablet device was in landscape mode, issue was observed (below are the dimensions)
resolution: 7681024
viewport: 1024665

Reply here


Re-open since closed: about OCR geometric information in image

Thank you, Zdenop,
(Since my issue is closed, I guess I have to re-open a new one to request further help, sorry.)
To make things more specific and easier,
I do not expect to give Tesseract the entire image but to just give Tesseract the area which is expected to be OCR-ed, which can be done by pre-processing the image, the following are 2 examples:

Could you or anybody else kindly give me some instructions on how to OCR such geometric information?
For further information: I already had a special font to display such characters once it is OCR-ed, but I still do not know how to mapping the OCR results to this font. Thanks a lot in advance if there is any instructions or documents about this as well.
Thanks again!
Ant
Originally posted by @powerfulant in https://github.com/tesseract-ocr/tesseract/issues/3629#issuecomment-962542773

The right place to ask this kind of question is our forum.

Thanks a Amitdo, I will seek help in the forum.


Added unsafeCast

I have added unsafeCast, implemented in the same fashion as cast.
Cast variations include:

Signed to unsigned and vice versa of the same bit width.
Promotion from signed and unsigned to floating points.
Down casting to smaller bit widths within same base (i.e. signed to signed, unsigned to unsigned).

It looks like I should've sent this PR to Copilot-Language/copilot-language instead of here. Should we just close this one and I'll re-submit?

@fredyr sorry I didn't get to this earlier. We have a large number of new developers on Copilot this summer, interning at NASA, so I set up a separate organization. Yes, if you don't mind, please do resubmit over there. Thanks!


Add support for cascade layers

STACKED PR: DO NOT MERGE BEFORE #177
Description
User-agent and polyfilled styles should always have lowest priority, but if a consumer uses cascade layers (i.e. @layer) then polyfilled popover styles have highest priority and overwrite other styles unless they are also in a layer. This change puts polyfilled styles into a layer so that consumers can control layer order.
Related Issue(s)
#175 (original issue and discussion)
Steps to test/reproduce
Place a style that sets the background or color of any popover element into any @layer block. That style will only apply correctly after this change.

I apologize for the stacked PR. This seemed the best way to avoid conflicts with my other PR, but I'm happy to break this up and just deal with conflicts and rebasing if one lands.
The main issue is in the index.html where each PR is adding a new popover and button for testing. The existing pattern of just incrementing a number in the id (i.e. id="popover12) doesn't lend itself to concurrent changes.


Remove link-dry-run related code (which seems not used anywhere in flutter & dart)

It seems neither Flutter Tools nor Dart SDK uses or needs the link-dry-run functionality. So I think we can simplify the code by removing this.
PR to remove remaining traces in flutter tools: https://github.com/flutter/flutter/pull/155820

coverage: 91.013% (-0.02%) from 91.037%
when pulling a2dcb7b6ae45502bacee779e97bbc36f167c6b50 on link-dry-run-removal
into 16918aef9da60646e5ae0ad0307fe0e1a64355b2 on main.

Thanks for the quick review, @dcharkes !


Add dynamic port

Refer to this link for build results (access rights to CI server needed):
http://guh.guru:8080/job/guh-webinterface-pull-request/61/


How do you configure a redis cache with s3 storage using environment variables ?

docker run
-d
-e REGISTRY_STORAGE=s3
-e REGISTRY_STORAGE_S3_ACCESSKEY=changeme
-e REGISTRY_STORAGE_S3_SECRETKEY=changeme
-e REGISTRY_STORAGE_S3_BUCKET=docker-registry-v2
-e REGISTRY_STORAGE_S3_REGION=us-west-2
-e REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=redis
-e REGISTRY_REDIS_ADDR=localhost:6379
-p 5000:5000
registry:2
This does not however use the cache. Is this a bug ? or am I missing an environment variable ?

@muralimadhu this approach is correct, and should (in theory) work.
What are you seeing in your registry logs?  Does it attempt to connect to any redis service?  A redis service on a different port?

@RichardScothern I dont see anything in the logs related to redis.
time="2015-06-24T18:44:14.278152853Z" level=info msg="endpoint local-8082 disabled, skipping" environment=development instance.id=bf44c42d-83bd-47df-a1a7-0f57b820677d service=registry version=v2.0.1
time="2015-06-24T18:44:14.278900357Z" level=info msg="endpoint local-8083 disabled, skipping" environment=development instance.id=bf44c42d-83bd-47df-a1a7-0f57b820677d service=registry version=v2.0.1
time="2015-06-24T18:44:14.278959606Z" level=info msg="listening on :5000" environment=development instance.id=bf44c42d-83bd-47df-a1a7-0f57b820677d service=registry version=v2.0.1
time="2015-06-24T18:44:14.278590617Z" level=info msg="Starting upload purge in 45m0s" environment=development instance.id=bf44c42d-83bd-47df-a1a7-0f57b820677d service=registry version=v2.0.1
time="2015-06-24T18:44:14.2790749Z" level=info msg="debug server listening localhost:5001"
time="2015-06-24T18:44:16.15586978Z" level=info msg="response completed" environment=development http.request.host="localhost:5000" http.request.id=362ec2dd-82ea-4d74-9fae-b9d3c34979ed http.request.method=GET http.request.remoteaddr="<IP_ADDRESS>:53242" http.request.uri="/" http.request.useragent="curl/7.29.0" http.response.contenttype="text/plain; charset=utf-8" http.response.duration="137.331µs" http.response.status=404 http.response.written=19 instance.id=bf44c42d-83bd-47df-a1a7-0f57b820677d service=registry version=v2.0.1
Monitoring the redis server also shows no activity

@muralimadhu "blobdescriptor" is only supported in registry 2.1 and master, which will be released in a few weeks. For now, you'll have to use "layerinfo", which is equivalent and backwards compatible.

@muralimadhu In the future, please use the mailing list for these kinds of questions.

The documentation for the current release clearly states that the blobdescriptor and inmemory are valid options for storage.cache:
https://docs.docker.com/registry/configuration/
I would never have figured that layerinfo would be a valid option as it's not mentioned anywhere in the registry v2 docs. I would say this is a valid forum for this issue and that it's an issue that affects the documentation. I would suggest the label is switched from "question" to something like "documentation" as the docs are currently misleading.

Yes, it seems like there is a mismatch between whats in the documentation and whats currently released. The documentation should clearly indicate what feature is available in which version. For ex) I see this issue too: https://github.com/docker/distribution/issues/522 . Now I dont know whether my configuration is wrong or if its a bug.

@damnhandy @muralimadhu Here is the documentation for the 2.0.1 release covering layerinfo. Sorry this is not easy to find but the docs are managed in https://github.com/docker/docs-base. I'd recommend filing an issue over there to voice your concern.
@muralimadhu #522 is completely unrelated to the documentation version. That is indeed a bug or lack of an expected behavior. However, I would recommend you draft your own Dockerfile from registry:2.0.1 with your own configuration file, rather than relying solely on environment variables. Environment variables can be used to tweak the configuration but I recommend you set a decent outline first. We are exploring better approaches to this in the future.

Well, I can understand muralimadhu, because in the production we are using an Environment Variables for configure our Docker Containers. This is a very handy way to run application without any file dependencies. So, I would make proposal that the environment variables were as equivalent as the configuration files, because it's handy and consistent with the concept of the twelve factor apps (http://12factor.net/).

By the way. I have tried to configure registry to using redis as cache, but it's not working.
I was trying to pass configuration params as envoronment variables:
--env=REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=redis (I have tried --env=REGISTRY_STORAGE_CACHE_LAYERINFO=redis also)
--env=REGISTRY_REDIS_ADDR=<IP_ADDRESS>:6379

after then I tried with config file:
version: 0.1
log:
  level: debug
  fields:
    service: registry
    environment: development
http:
  addr: :5000
  secret: asecretforlocaldevelopment
  debug:
    addr: localhost:5001
redis:
  addr: <IP_ADDRESS>:6379
  pool:
    maxidle: 16
    maxactive: 64
    idletimeout: 300s
  dialtimeout: 10ms
  readtimeout: 10ms
  writetimeout: 10ms

but tcpdump and redis-cli tells me that registry even did't tried to use it.

@undying The config you have only configures the redis connection pool. Add the following to the storage section:
storage:
  cache:
    blobdescriptor: redis

Hello @stevvooe,
I am trying the same thing as @undying with:
storage:
  cache:
    blobdescriptor: redis

like you said.
I am using version distribution/registry:master, but redis-cli monitor does not show any trafic.
I have also tried distribution/registry:latest with:
storage:
  cache:
    layerinfo: redis

but this doesn't seam to do anything either.
Is there a method for debugging this?

@stevvooe undying setup shows he's configuring the storage section setup with the environment variable:
--env=REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=redis (I have tried --env=REGISTRY_STORAGE_CACHE_LAYERINFO=redis also)
Does this not work?
[ As you can imagine, we're facing the exact same issue with distribution V 2.1.1 ]

Should -e REGISTRY_REDIS_ADDR=REDIS_PORT_6379_TCP_ADDR:6379 registry:2.1.1 be -e REGISTRY_REDIS_ADDR=$REDIS_PORT_6379_TCP_ADDR:6379 registry:2.1.1? It seems like there is a missing $.
Either way, it is recommended to write a base configuration for your deployment and tweak with environment variables.

I just want to confirm what @nateww reported.  Setting s3 storage and Redis storage cache do not work through environmental variables.  I moved the config to the configuration file and Redis started up with s3 storage, so it's only an issue using environmental variables.  I am using version 2.1.1 of Distribution as well.

REGISTRY_STORAGE env var overwrites (completely wipes) underlaying structure no matter of "-e" flags order.
So it's bad idea to form entire conf structure using env vars only.
Setting individual conf values works fine.

@overplumbum this is correct.
https://github.com/docker/distribution/pull/888 should help matters, but as mentioned above a base config with environmental overrides is the recommended approach.

@stevvooe
Re: 12-factor
Here's a couple ideas to solve the problem at hand:

Move the cache section to the top level (in fact current docs show it as a top-level config option in the sample YAML ) outside of the storage backend config section. Then setting REGISTRY_STORAGE_S3 won't make it impossible to use redis as a cache.
Provide as close to blank as possible ``config.yml``` in the official registry image. One with no storage backend configured.
Remove the ability to configure via environment completely. It is senseless to have two methods of configuration if one is opaquely incomplete. (hashtag bijections4eva)

Hopefully #888 fixes this. If not, hopefully the documentation is updated to reflect that something seemingly simple & obvious is not.

Even after #888 lands, some gems above should really be promoted as best practices.  Example:
https://github.com/docker/distribution/issues/657#issuecomment-115821522 , wherein @stevvooe says:

... I would recommend you draft your own Dockerfile from registry:2.0.1 with your own configuration file, rather than relying solely on environment variables[emphasis mine]. Environment variables can be used to tweak the configuration but I recommend you set a decent outline first. We are exploring better approaches to this in the future.

Since it seems ENV variables are a well-known deficiency in the registry config system (to some, at least)... please add some BIG FAT WARNINGS in docs/deploying.md and docs/configuration.md.
That would be very appropriate until "better approaches" land.


Fix typescript syntax errors

Remove unwanted : and fix the naming of the boolean type.

Thanks!
bors r+


[Android] System.InvalidCastException

Hi,
I've installed the latest version (1.0.1) to Xamarin.Forms(<IP_ADDRESS>452) project and followed the same set up what's described in the documentation.
This issue only happens on Android where I'm trying to access CrossGeofence.Current.
Here's a full log what's actually thrown.
at Plugin.Geofence.GeofenceImplementation.RequestPermissions () [0x00000] in C:\Plugins\Geofence\src\Plugin.Geofence.Android\GeofenceImplementation.cs:706
at Plugin.Geofence.GeofenceImplementation..ctor () [0x00031] in C:\Plugins\Geofence\src\Plugin.Geofence.Android\GeofenceImplementation.cs:126
at Plugin.Geofence.CrossGeofence.CreateGeofence () [0x00000] in C:\Plugins\Geofence\src\Plugin.Geofence.Shared\CrossGeofence.cs:131
at Plugin.Geofence.CrossGeofence+<>c.<.cctor>b__55_0 () [0x00000] in C:\Plugins\Geofence\src\Plugin.Geofence.Shared\CrossGeofence.cs:13
at System.Lazy1[T].CreateValue () [0x00081] in <d4a23bbd2f544c30a48c44dd622ce09f>:0    at System.Lazy1[T].LazyInitValue () [0x00023] in :0
at System.Lazy`1[T].get_Value () [0x0003a] in :0
at Plugin.Geofence.CrossGeofence.get_Current () [0x0000d] in C:\Plugins\Geofence\src\Plugin.Geofence.Shared\CrossGeofence.cs:115
at Taskey.Forms.ViewModels.HomePageVM.StartTrackingLocation () [0x00002] in /Users/jaysim/Documents/CrowdCo/Taskey/taskey/Taskey.Forms/ViewModels/HomePageVM.cs:65
Anyone has experienced such issue? It would be great if anyone has workaround for it.
Kind regards,
Jay

Hi,
no workaround for this issue: before to call any methods of CrossGeofence.Current you have to grant location permissions.
Flavio

Looking through some commits, it appears that this issue will have been fixed by #6.
It would be useful if there were a pre-release that incorporated this fix.


Installing GTSAM in combination with RoboStack ROS Noetic on Windows 10

Comment:
I aim to implement a ROS package in Python that lives completely within an Anaconda environment on a Windows computer (we have some other software that must run on Windows). I have been using RoboStack ROS Noetic to implement the ROS side of things. Additionally, I require GTSAM in one of my ros nodes. After having installed ROS using mamba install ros-noetic-desktop I install GTSAM using mamba install gtsam which does work, however, it installs version gtsam-4.2.0-py311h669d342_3 which is not the latest build. When running the following snippet of code (minimal reproducible example)
import gtsam
import numpy as np

graph = gtsam.NonlinearFactorGraph()

pose_key = gtsam.symbol('x', 0)
vel_key = gtsam.symbol('v', 0)
bias_key = gtsam.symbol('b', 0)

current_pose = gtsam.Pose3(np.eye(4))
current_vel = np.zeros(3)
current_bias = gtsam.imuBias.ConstantBias()

graph.add(gtsam.PriorFactorPose3(pose_key, current_pose, gtsam.noiseModel.Isotropic.Sigma(6, 0.1)))
graph.add(gtsam.PriorFactorVector(vel_key, current_vel, gtsam.noiseModel.Isotropic.Sigma(3, 0.1)))
graph.add(gtsam.PriorFactorConstantBias(bias_key, current_bias, gtsam.noiseModel.Isotropic.Sigma(6, 0.1)))

initial_estimate = gtsam.Values()
initial_estimate.insert(pose_key, current_pose)
initial_estimate.insert(vel_key, current_vel)
initial_estimate.insert(bias_key, current_bias)

pose_key += 1
vel_key += 1
bias_key += 1

new_pose = gtsam.Pose3(np.eye(4))
graph.add(gtsam.PriorFactorPose3(pose_key, new_pose, gtsam.noiseModel.Diagonal.Sigmas(np.array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1]))))

imu_accum = gtsam.PreintegratedImuMeasurements(gtsam.PreintegrationParams(np.asarray([0, 0, 9.81])))
predicted_nav_state = imu_accum.predict(gtsam.NavState(current_pose, current_vel), current_bias)
imu_factor = gtsam.ImuFactor(pose_key-1, vel_key-1, pose_key, vel_key, bias_key, imu_accum)
graph.add(imu_factor)

initial_estimate.insert(pose_key, predicted_nav_state.pose())
initial_estimate.insert(vel_key, predicted_nav_state.velocity())
initial_estimate.insert(bias_key, gtsam.imuBias.ConstantBias())

bias_factor = gtsam.BetweenFactorConstantBias(bias_key-1, bias_key, gtsam.imuBias.ConstantBias(), gtsam.noiseModel.Diagonal.Sigmas(np.array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1])))
graph.add(bias_factor)

isam = gtsam.ISAM2(gtsam.ISAM2Params())
result = isam.update(graph, initial_estimate)

the following error is thrown:
RuntimeError: Attempting to retrieve value with key "v1", type stored in Values is class gtsam::GenericValue<class Eigen::Matrix<double,-1,1,0,-1,1> > but requested type was class Eigen::Matrix<double,3,1,0,3,1>

This is a known issue and was fixed in this pull request. Indeed, when installing the latest build of GTSAM (gtsam-4.2.0-py311hdd3dd35_5) no error is thrown for the upper code snippet. However, this version is incompatible with mamba install ros-noetic-desktop, as versions of libboost 1.82 and 1.84 collide.
What could be a workaround to ensure compatibility? Should GTSAM be rebuilt for  libboost 1.82, while still incorporating the changes of the above-mentioned pull request? Or is there a combination of versions that is compatible with my requirements and does not throw this error? I have tried installing only a subset of the ROS package, but that didn't work. Also, trying other Python versions yielded no success as ROS Noetic is only built for Python 3.11 as it seems. Any help would be appreciated as I am not well versed with package building using conda-forge.

This is unfortunately a recurrent problem with robostack packages. conda-forge has ABI migration occuring regularly (https://conda-forge.org/blog/2019/12/06/cfep09/), but at robostack at the moment we only do periodic rebuilds, that however use the version of dependencies used in conda-forge packages built at the moment we did the rebuild (as you noticed, currently libboost 1.82, see https://github.com/RoboStack/ros-noetic/blob/7f743314408fbaea5701b8f09193e11136b9b899/additional_recipes/ros-distro-mutex/recipe.yaml#L33).
The "proper" solution is to do a rebuild with updated libboost pinning set to 1.84, but that takes time. Other solutions involve separating gtsam and ros code in two separated conda environment, and make them communicate over some kind of non-ROS IPC. Yes another workaround is to compile gtsam from source.
However, as the boost 1.84 migration is still ongoing (see https://conda-forge.org/status/migration/boost1840) probably at least for gtsam we can do a dual 1.82/1.84 . Doing this for all packages it is not sustainable but for this specific case I do not think it is particularly problematic.

Ok, one step back as I may be a bit confused.

This is a known issue and was fixed in https://github.com/borglab/gtsam/pull/1685. Indeed, when installing the latest build of GTSAM (gtsam-4.2.0-py311hdd3dd35_5) no error is thrown for the upper code snippet.

If this is issue was fixed in https://github.com/borglab/gtsam/pull/1685, how is this related to gtsam 4.2.0 that was released several months before  https://github.com/borglab/gtsam/pull/1685 was merged? Can you try if you see the same problem with gtsam-4.2.0===_4 ? Thanks!

Thanks for your response and the explanation. I will check again tomorrow as I don't have my PC but I am quite certain that the behavior is already fixed in _4 but the same compatibility issues regarding libboost arose, i.e. it would only let me install version _3 alongsid RoboStack ROS. However, the timeline is indeed confusing as  the pull request is not even part of the current build as I understand? Could just upgrading libboost to 1.84 have implicity solved the problem (i. e., downgrading would again yield the same error)?

Could just upgrading libboost to 1.84 have implicity solved the problem (i. e., downgrading would again yield the same error)?

If that is the case, then a rebuild against liboost 1.82 will not help.

Just to double check, can you check if you can install suitesparse==7 with the packages you need? If you can't, again the rebuild in https://github.com/conda-forge/gtsam-feedstock/pull/26 will not be useful for you.

mamba install -c conda-forge suitesparse=7.7.0 yields
Could not solve for environment specs
The following packages are incompatible
├─ gtsam is installable with the potential options
│  ├─ gtsam 4.2.0 would require
│  │  └─ libboost >=1.84.0,<1.85.0a0 , which requires
│  │     └─ boost-cpp 1.84.0* , which can be installed;
│  ├─ gtsam [4.1.1|4.2.0] would require
│  │  └─ suitesparse >=5.4.0,<6.0a0 , which can be installed;
│  ├─ gtsam [4.1.1|4.2.0] would require
│  │  └─ python >=3.10,<3.11.0a0 , which can be installed;
│  ├─ gtsam 4.1.1 would require
│  │  └─ python >=3.7,<3.8.0a0 , which can be installed;
│  ├─ gtsam [4.1.1|4.2.0] would require
│  │  └─ python >=3.8,<3.9.0a0 , which can be installed;
│  ├─ gtsam [4.1.1|4.2.0] would require
│  │  └─ python >=3.9,<3.10.0a0 , which can be installed;
│  └─ gtsam 4.2.0 would require
│     └─ python >=3.12,<3.13.0a0 , which can be installed;
├─ libboost-devel is installable with the potential options
│  ├─ libboost-devel 1.82.0 would require
│  │  └─ libboost 1.82.0 h65993cd_6, which conflicts with any installable versions previously reported;
│  ├─ libboost-devel 1.82.0 would require
│  │  └─ libboost 1.82.0 h65993cd_2, which conflicts with any installable versions previously reported;
│  ├─ libboost-devel 1.82.0 would require
│  │  └─ libboost 1.82.0 h65993cd_3, which conflicts with any installable versions previously reported;
│  ├─ libboost-devel 1.82.0 would require
│  │  └─ libboost 1.82.0 h65993cd_4, which conflicts with any installable versions previously reported;
│  ├─ libboost-devel 1.82.0 would require
│  │  └─ libboost 1.82.0 h65993cd_5, which conflicts with any installable versions previously reported;
│  ├─ libboost-devel [1.83.0|1.84.0], which can be installed;
│  └─ libboost-devel 1.85.0 would require
│     └─ libboost 1.85.0 h9a677ad_0, which conflicts with any installable versions previously reported;
├─ ros-distro-mutex is installable with the potential options
│  ├─ ros-distro-mutex 0.4.0 would require
│  │  └─ boost-cpp 1.78.* , which can be installed;
│  └─ ros-distro-mutex 0.5.0 would require
│     └─ libboost-devel 1.82 , which conflicts with any installable versions previously reported;
├─ ros-noetic-std-msgs is not installable because there are no viable options
│  ├─ ros-noetic-std-msgs 0.5.13 would require
│  │  └─ ros-noetic-message-runtime but there are no viable options
│  │     ├─ ros-noetic-message-runtime 0.4.13 would require
│  │     │  └─ ros-noetic-rostime but there are no viable options
│  │     │     ├─ ros-noetic-rostime 0.7.2 would require
│  │     │     │  └─ boost-cpp but there are no viable options
│  │     │     │     ├─ boost-cpp 1.63.0 would require
│  │     │     │     │  └─ vc 10 , which does not exist (perhaps a missing channel);
│  │     │     │     ├─ boost-cpp [1.63.0|1.64.0|...|1.67.0] would require
│  │     │     │     │  └─ vc 14 , which conflicts with any installable versions previously reported;
│  │     │     │     ├─ boost-cpp [1.63.0|1.64.0|...|1.70.0] would require
│  │     │     │     │  └─ vc [9 |9.* ], which conflicts with any installable versions previously reported;
│  │     │     │     ├─ boost-cpp [1.65.1|1.67.0|...|1.84.0] conflicts with any installable versions previously reported;
│  │     │     │     ├─ boost-cpp 1.82.0 would require
│  │     │     │     │  └─ libboost-devel 1.82.0 h91493d7_6, which cannot be installed (as previously explained);
│  │     │     │     └─ boost-cpp 1.85.0 would require
│  │     │     │        └─ libboost-devel 1.85.0 h91493d7_0, which cannot be installed (as previously explained);
│  │     │     └─ ros-noetic-rostime 0.7.3 would require
│  │     │        └─ ros-distro-mutex 0.5.* , which cannot be installed (as previously explained);
│  │     └─ ros-noetic-message-runtime 0.4.13 would require
│  │        └─ ros-distro-mutex 0.5.* , which cannot be installed (as previously explained);
│  └─ ros-noetic-std-msgs 0.5.13 would require
│     └─ ros-distro-mutex 0.5.* , which cannot be installed (as previously explained);
└─ suitesparse 7.7.0**  is not installable because it conflicts with any installable versions previously reported.

so it seems to be incompatible. suitsparse==5 is the latest version that works.
So what are my options from here? I guess #26 will not resolve my problems as you mentioned. I assume I would need to build the version borglab/gtsam/#1685 from the gtsam development branch in order to fix my issues still using libboost 1.82. How feasible would that be?

mamba install -c conda-forge suitesparse=7.7.0 is installable alongside Robostack ROS. So this does not seem to be an issue. Even though #26 will probably not resolve my problems as you mentioned, it might still be worth the try. Otherwise, my remaining option would be to build the version borglab/gtsam/#1685 from the gtsam development branch with libboost 1.82. Would that be feasible?

Would that be feasible?

I do not see any specific problem that could emerge. There are a bunch of patches in https://github.com/conda-forge/gtsam-feedstock/tree/main/recipe, but hopefully they are superseded in master thanks to the PR https://github.com/borglab/gtsam/pull/1685, so a good attempt would just to try to compile the master version as it is is. You can get inspiration from the https://github.com/conda-forge/gtsam-feedstock/blob/main/recipe/bld.bat script, just make sure that you use %CONDA_PREFIX% instead of %PREFIX% if you build outside of conda-build.

Even though https://github.com/conda-forge/gtsam-feedstock/pull/26 will probably not resolve my problems as you mentioned, it might still be worth the try.

To be honest, I am not sure about that. Not sure if I am missing anything, but issue does not seem to be related to boost.

Okay, so #26 should be closed then.
Regarding building the GTSAM develop branch, would you suggest following the python wrapper building instructions (so do not work with conda-build) as I aim to use it only locally? I am not experienced in building packages, so if you have any other pointers on how to start, let me know.
Thanks

Those instructions seems fine, the only thing that is important is not to install any dependency with pip, but rather use conda to install the dependencies listed in https://github.com/conda-forge/gtsam-feedstock/blob/main/recipe/meta.yaml#L30-L53 . Note that instead of the compilers macros, you can just use the compilers package, and you can ignore all the lines that end with # [build_platform != target_platform].

I just tested your script, and it is failing with the reported error with the following environment:
(gtsam) D:\src\gtsamws>conda list
# packages in environment at D:\miniforge3\envs\gtsam:
#
# Name                    Version                   Build  Channel
bzip2                     1.0.8                hcfcfb64_5    conda-forge
ca-certificates           2024.2.2             h56e8100_0    conda-forge
geographiclib-cpp         2.3                  h91493d7_1    conda-forge
gtsam                     4.2.0           py312h8ae2717_5    conda-forge
intel-openmp              2024.1.0           h57928b3_965    conda-forge
libblas                   3.9.0              22_win64_mkl    conda-forge
libboost                  1.84.0               h9a677ad_3    conda-forge
libcblas                  3.9.0              22_win64_mkl    conda-forge
libexpat                  2.6.2                h63175ca_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libflang                  5.0.0           h6538335_20180525    conda-forge
libhwloc                  2.10.0          default_h2fffb23_1000    conda-forge
libiconv                  1.17                 hcfcfb64_2    conda-forge
liblapack                 3.9.0              22_win64_mkl    conda-forge
libsqlite                 3.45.3               hcfcfb64_0    conda-forge
libxml2                   2.12.7               h283a6d9_0    conda-forge
libzlib                   1.2.13               hcfcfb64_5    conda-forge
llvm-meta                 5.0.0                         0    conda-forge
metis                     5.1.0             h63175ca_1007    conda-forge
mkl                       2024.1.0           h66d3029_692    conda-forge
numpy                     1.26.4          py312h8753938_0    conda-forge
openmp                    5.0.0                    vc14_1    conda-forge
openssl                   3.3.0                hcfcfb64_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
pthreads-win32            2.9.1                hfa6e2cd_3    conda-forge
pyparsing                 3.1.2              pyhd8ed1ab_0    conda-forge
python                    3.12.3          h2628c8c_0_cpython    conda-forge
python_abi                3.12                    4_cp312    conda-forge
setuptools                69.5.1             pyhd8ed1ab_0    conda-forge
suitesparse               7.7.0                h7e725d4_1    conda-forge
tbb                       2021.12.0            h91493d7_0    conda-forge
tk                        8.6.13               h5226925_1    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
vc                        14.3                hcf57466_18    conda-forge
vc14_runtime              14.38.33130         h82b7239_18    conda-forge
vs2015_runtime            14.38.33130         hcb4865c_18    conda-forge
wheel                     0.43.0             pyhd8ed1ab_1    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge
zstd                      1.5.6                h0ea2cb4_0    conda-forge

Also installing python==3.11.* it still fails. @hmaarten can you please report the exact environment in which the test is working? Thanks!

Hmm, I just realized that it indeed only works with build _4, so the overall dependencies are
(gtsam_test) C:\>mamba list
# packages in environment at C:\miniconda3\envs\gtsam_test:
#
# Name                    Version                   Build  Channel
bzip2                     1.0.8                hcfcfb64_5    conda-forge
ca-certificates           2024.2.2             h56e8100_0    conda-forge
geographiclib-cpp         2.3                  h91493d7_1    conda-forge
gtsam                     4.2.0           py311h0631a01_4    conda-forge
intel-openmp              2024.1.0           h57928b3_965    conda-forge
libblas                   3.9.0              22_win64_mkl    conda-forge
libboost                  1.84.0               h9a677ad_3    conda-forge
libcblas                  3.9.0              22_win64_mkl    conda-forge
libexpat                  2.6.2                h63175ca_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libhwloc                  2.10.0          default_h2fffb23_1000    conda-forge
libiconv                  1.17                 hcfcfb64_2    conda-forge
liblapack                 3.9.0              22_win64_mkl    conda-forge
liblapacke                3.9.0              22_win64_mkl    conda-forge
libsqlite                 3.45.3               hcfcfb64_0    conda-forge
libxml2                   2.12.7               h283a6d9_0    conda-forge
libzlib                   1.2.13               hcfcfb64_5    conda-forge
metis                     5.1.0             h63175ca_1007    conda-forge
mkl                       2024.1.0           h66d3029_692    conda-forge
numpy                     1.26.4          py311h0b4df5a_0    conda-forge
openssl                   3.3.0                hcfcfb64_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
pthreads-win32            2.9.1                hfa6e2cd_3    conda-forge
pyparsing                 3.1.2              pyhd8ed1ab_0    conda-forge
python                    3.11.9          h631f459_0_cpython    conda-forge
python_abi                3.11                    4_cp311    conda-forge
setuptools                69.5.1             pyhd8ed1ab_0    conda-forge
suitesparse               5.4.0                h5d0cbe0_1    conda-forge
tbb                       2021.12.0            h91493d7_0    conda-forge
tk                        8.6.13               h5226925_1    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
vc                        14.3                hcf57466_18    conda-forge
vc14_runtime              14.38.33130         h82b7239_18    conda-forge
vs2015_runtime            14.38.33130         hcb4865c_18    conda-forge
wheel                     0.43.0             pyhd8ed1ab_1    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge
zstd                      1.5.6                h0ea2cb4_0    conda-forge

The main difference seems to be the version of suitesparse (5.4.0 vs 7.7.0). With this environment, my script works fine...
No idea how to interpret this behavior.

On another note, I tried to build gtsam from source using changes in borglab/gtsam/#1685. I tried two approaches

Managing the build process from within an Anaconda environment. For this I

Installed dependencies from https://github.com/conda-forge/gtsam-feedstock/blob/main/recipe/meta.yaml#L30-L53 using mamba install (wiht boost 1.82)
Tried to apply patches using git apply ..., most of them resulted in patch does not apply though (I think as there are changes already in the branch)
Used https://github.com/conda-forge/gtsam-feedstock/blob/main/recipe/bld.bat as a starting point for cmake

However, here already cmake failed as it could not find boost (it did identify version 1.82, but said a bunch of subcomponents were missing, even though they are all present in the environments Library/include and Library/lib folder, respectively. So not sure what to do with that. Here I did not understand exactly what to do with %LIBRARY_PREFIX% variable, I just set it to the Library folder of my anaconda environment using set at the beginning of the .bat script. @traversaro you mention

just make sure that you use %CONDA_PREFIX% instead of %PREFIX% if you build outside of conda-build.

Could you elaborate on that?

Managing the build process outside of anaconda. For this I

Installed boost 1.82 using precompiled binaries from the official website and the other dependencies using pip
Tried to apply patches using git apply ..., most of them resulted in patch does not apply though (I think as there are changes already in the branch)
Used python wrapper building instructions for cmake, yielding an .sln file
Used MSVS 2019 to build the python-test package
Installed it using pip installl . in the build/python folder

This approach almost works, however when I try to import gtsam it throws
>>> import gtsam
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\hmaarten\Documents\gtsam_build\gtsam_with_patches\gtsam\build\python\gtsam\__init__.py", line 9, in <module>
    from gtsam import gtsam, utils
ImportError: cannot import name 'gtsam' from partially initialized module 'gtsam' (most likely due to a circular import) (C:\Users\hmaarten\Documents\gtsam_build\gtsam_with_patches\gtsam\build\python\gtsam\__init__.py)

I found a similar issue here #19, and the workaround is included in the https://github.com/conda-forge/gtsam-feedstock/blob/main/recipe/bld.bat file with
python\gtsam\gtsam.*.pyd "%SP_DIR%\gtsam\"
i.e., copying some .pyd files. However, when I look in my output build folder, I only find a .pyd file in gtsam\build\python\gtsam\Release (gtsam_py.pyd), so it does not really match the structure of that command. Maybe because I used MSVS 2019 instead of ninja in the 2nd approach.
So currently I am a bit stuck with both approaches. Any additional inputs would be appreciated.

I reproduced the problem in CI in https://github.com/conda-forge/gtsam-feedstock/pull/26 . Let's just backport the patch and if that works and live happy.

here already cmake failed as it could not find boost (it did identify version 1.82, but said a bunch of subcomponents were missing, even though they are all present in the environments Library/include and Library/lib folder, respectively.

Please, always include the exact error that you are experiencing, not a recap. The exact errors are important to provide you feedback.

just make sure that you use %CONDA_PREFIX% instead of %PREFIX% if you build outside of conda-build.

Could you elaborate on that?

conda-build works with two environments, a build and host environment. If you do a local build, you just have an environment, pointed by CONDA_PREFIX. LIBRARY_PREFIX,PREFIX and similar are all conda-build env variables, see https://docs.conda.io/projects/conda-build/en/latest/user-guide/environment-variables.html .

Maybe because I used MSVS 2019 instead of ninja in the 2nd approach.

Yes, that is the reason. VS is a so-called multiple config generator, while ninja is a single config, so all the outpus of VS generator have an additional folder to identify the config. Just change the copy command to handle the difference folder structure, or use ninja .

Can you try to set CMAKE_PREFIX_PATH cmake variable to C:\Users\hmaarten\miniforge3\envs\gtsam_build\Library ?

I tried copying the .pyd file from gtsam\build\python\gtsam\Release to miniconda3\envs\ros_noetic_minimal\Lib\site-packages\gtsam\Release, this did not yield any change, however.

Any change w.r.t. to what?

Changed it now to
set CONDA_PREFIX=C:\Users\hmaarten\miniforge3\envs\gtsam_build
set CONDA_PY=C:\Users\hmaarten\miniforge3\envs\gtsam_build\python.exe

set CMAKE_PREFIX_PATH=C:\Users\hmaarten\miniforge3\envs\gtsam_build\Library
set SRC_DIR=C:\Users\hmaarten\Documents\gtsam_build\gtsam
set LIBRARY_PREFIX=%CONDA_PREFIX%\Library
set PYTHON=%CONDA_PY%

which did not change anything of the cmake output (still boost error)

Any change w.r.t. to what?

As in the circular import issue
>>> import gtsam
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\hmaarten\Documents\gtsam_build\gtsam_with_patches\gtsam\build\python\gtsam\__init__.py", line 9, in <module>
    from gtsam import gtsam, utils
ImportError: cannot import name 'gtsam' from partially initialized module 'gtsam' (most likely due to a circular import) (C:\Users\hmaarten\Documents\gtsam_build\gtsam_with_patches\gtsam\build\python\gtsam\__init__.py)

remains. Using ninja instead for the build outside of anaconda, i.e., changing
cmake .. -DGTSAM_BUILD_PYTHON=1 -DGTSAM_PYTHON_VERSION=3.11
to
cmake .. -GNinja -DGTSAM_BUILD_PYTHON=1 -DGTSAM_PYTHON_VERSION=3.11
yields
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- The CXX compiler identification is GNU 13.1.0
-- The C compiler identification is GNU 13.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Strawberry/c/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Strawberry/c/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- GTSAM is a shared library due to GTSAM_FORCE_SHARED_LIB
-- GTSAM_POSE3_EXPMAP=ON, enabling GTSAM_ROT3_EXPMAP as well
-- Performing Test COMPILER_HAS_WSUGGEST_OVERRIDE
-- Performing Test COMPILER_HAS_WSUGGEST_OVERRIDE - Success
-- Performing Test COMPILER_HAS_WMISSING_OVERRIDE
-- Performing Test COMPILER_HAS_WMISSING_OVERRIDE - Failed
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Could NOT find Boost (missing: Boost_INCLUDE_DIR serialization system filesystem thread program_options date_time timer chrono regex) (Required is at least version "1.65")
CMake Error at cmake/HandleBoost.cmake:33 (message):
  Missing required Boost components >= v1.65, please install/upgrade Boost or
  configure your search paths.
Call Stack (most recent call first):
  CMakeLists.txt:66 (include)

-- Configuring incomplete, errors occurred!

so indicating again a boost not found error. (without -GNinja flag boost was found and cmake is successful)
Thanks for your continued support, I much appreciate it.

Problem is fixed for me with the latest build, thanks a lot!

Problem is fixed for me with the latest build #26 , thanks a lot!


Block a field on read only until the previous one field is filled

Hello,
I use this json editor. It's very awesome BUT I want to  add a constraint on my editor and I don't know how to do.
My constraint to add =>I would like to oblige the  user to fill the field in order defined in the json schema. For example,  one idea would be to have:

only the first field of my form with readonly=false
my schema impose on read only (true) all others fields of my form
and in 'on change' function of the editor, I want to:

1- find the node which is updated
2-find the next node described in the json schema
3- and change the property readonly of the next node to false
Is there function available to do point 1 and point 2?
Regards,

I have found the solution:
I get all element with class='controls' in javascript=> it returns all input and select html field.
After  I treate the result to enable only the first field empty and disable all others.


[docs] Give better instructions on which files are needed

See #166 point 1 and #142

This is helpful, thanks!


Named parameter with no default value was not made nullable

In the async package, in lib/src/lazy_stream.dart, on line 28, the following method is defined:
StreamSubscription<T> listen(void onData(T event),
    {Function? onError, void onDone(), bool? cancelOnError}) {
  if (_callback == null) {
    throw new StateError("Stream has already been listened to.");
  }

  // Null out the callback before we invoke it to ensure that even while
  // running it, this can't be called twice.
  var callback = _callback!;
  _callback = null;
  var result = callback();

  Stream<T> stream;
  if (result is Future<Stream<T>>) {
    stream = StreamCompleter.fromFuture(result.then((stream) {
      return DelegatingStream.typed<T>(stream);
    }));
  } else {
    stream = DelegatingStream.typed<T>(result as Stream);
  }

Note that the parameter onDone is not nullable. Note that the parameter is not referenced in the body of the method.

I found another example in lib/src/stream_completer.dart on line 119:
StreamSubscription<T> listen(onData(T data),
    {Function? onError, void onDone(), bool? cancelOnError}) {
  if (_controller == null) {
    if (_sourceStream != null && !_sourceStream!.isBroadcast) {
      // If the source stream is itself single subscription,
      // just listen to it directly instead of creating a controller.
      return _sourceStream!.listen(onData,
          onError: onError!, onDone: onDone!, cancelOnError: cancelOnError!);
    }
    _createController();
    if (_sourceStream != null) {
      _linkStreamToController();
    }
  }
  return _controller!.stream.listen(onData,
      onError: onError!, onDone: onDone!, cancelOnError: cancelOnError!);
}

In this case, onDone is used twice, and in both case is null checked. That suggests that we might have decided that it's nullable but been unable to add the question mark.

The onData is also not nullable, which it must be to satisfy the SDK declaration of Stream.listen.
Is it perhaps an issue with function parameters?

For onData I'd guess that it's more an issue with dynamic, but @stereotype441 can give you a more definitive answer.

We now can make function-typed parameters nullable. Here's one migration:
void f({Function onError, void onDone(), bool cancelOnError}) {}

=>
void f({Function? onError, void onDone()?, bool? cancelOnError}) {}