Envoy proxy to use second corporate proxy for any host requested by client

If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
<EMAIL_ADDRESS>where the issue will be triaged appropriately.
Title: Envoy proxy to use second corporate proxy for any hostl requested by client
Description:
Is there a way we can setup an envoy proxy to use a secondary corporate proxy for any host requested by the client?
Client -> envoy proxy -> corp proxy -> any host requested by the client
[optional Relevant Links:]

Any extra documentation required to understand the issue.
Read a few issues that lead back to something like this, but I believe this is for a static host?
https://gist.github.com/grzegorz-mirek/c028a24ec2b32dfa47b1fdb904ed3baa

I'm trying to allow clients make a request to a host destination, i.e. https://www.google.com through an envoy proxy.  The envoy proxy would then use another proxy located at say http://corp.proxy.net.  This would be for both http_proxy and https_proxy.

Client makes a request: curl --proxy http://envoy.proxy.net:1000 https://www.google.com
Envoy proxy uses another proxy at http://corp.proxy.net to send the request for https://www.google.com
Client receives the response from https://www.google.com

The difference between http and https is the destination port. You need to configure two clusters in Envoy with host corp.proxy.net and port 80 and 443 for http and https traffic.

The difference between http and https is the destination port. You need to configure two clusters in Envoy with host corp.proxy.net and port 80 and 443 for http and https traffic.

I think this is the issue we are having.  We need both http and https to use corp.proxy.net, port 80.
Is this achievable with the envoy proxy?
Currently we have clients connected to the corp proxy with the settings below.
https_proxy=http://corp.proxy.net
http_proxy=http://corp.proxy.net
We are looking to put an envoy proxy in front of the corp proxy.

I just want to follow up on this question.
Is it possible to forward all requests (http and https) to a secondary corp proxy using http?

You can do it, but it is complicated and we do not have ready made examples. You will need two listeners for this:

Listener 1 terminated http CONNECT, there is example in configs/terminate_http1_connect.yaml
Listener 2 for terminating TLS decapsulated from CONNECT request.
Cluster1 for sending CONNECT payload through a loopback socket to listener 2. Listener 1 will use cluster 1.
Cluster 1 for sending cleartext TCP payload to the corp proxy.

Adding @alyssawilk to see if we have some examples of such configuration.

Not that I know of sorry :-(

Hey guys I will be taking over this request from @dvu714. Would it be possible to create a example config with two listners and loopback?

so this is the config that I could make:
admin:   access_log_path: /tmp/admin_access.log   address:     socket_address:       address: <IP_ADDRESS>       protocol: TCP       port_value: 9901 static_resources:   listeners:     - name: listener_0       address:         socket_address:           address: <IP_ADDRESS>           protocol: TCP           port_value: 31000       filter_chains:         - filters:             - name: envoy.filters.network.http_connection_manager               typed_config:                 "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager                 access_log:                   - name: envoy.access_loggers.file                     typed_config:                       "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog                       path: /dev/stdout                 stat_prefix: ingress_http                 route_config:                   name: local_route                   virtual_hosts:                     - name: http                       domains:                         - "*"                       routes:                         - match:                             connect_matcher: {}                             # prefix: "/"                           # redirect:                           #   port_redirect: 31001                           #   https_redirect: false                           route:                             cluster: local_service                             upgrade_configs:                               - upgrade_type: CONNECT                                 connect_config:                                     proxy_protocol_config:                                       version: V1                                     allow_post: true                 http_filters:                   - name: envoy.filters.http.ext_authz                     typed_config:                       "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz                       grpc_service:                         envoy_grpc:                           cluster_name: ext-authz                         timeout: 1s                       include_peer_certificate: true                       transport_api_version: V3                   - name: envoy.filters.http.router                     typed_config:                       "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router                 http_protocol_options: {}                 # upgrade_configs:                 # - upgrade_type: CONNECT     - name: listener_1       address:         socket_address:           address: <IP_ADDRESS>           protocol: TCP           port_value: 31001       filter_chains:         - filters:             - name: envoy.filters.network.http_connection_manager               typed_config:                 "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager                 access_log:                   - name: envoy.access_loggers.file                     typed_config:                       "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog                       path: /dev/stdout                 stat_prefix: ingress_http                 route_config:                   name: local_route                   virtual_hosts:                     - name: http                       domains:                         - "*"                       routes:                         - match:                             # connect_matcher: {}                             prefix: "/"                           route:                             cluster: proxy                             # upgrade_configs:                             #   - upgrade_type: CONNECT                 http_filters:                   - name: envoy.filters.http.router                     typed_config:                       "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router   clusters:     - name: ext-authz       type: STRICT_DNS       typed_extension_protocol_options:         envoy.extensions.upstreams.http.v3.HttpProtocolOptions:           "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions           explicit_http_config:             http2_protocol_options: {}       load_assignment:         cluster_name: ext-authz         endpoints:           - lb_endpoints:               - endpoint:                   address:                     socket_address:                       address: proxy_config                       port_value: 8100     - name: proxy       connect_timeout: 1s       type: STRICT_DNS       load_assignment:         cluster_name: proxy         endpoints:           - lb_endpoints:               - endpoint:                   address:                     socket_address:                       address: <Corp http proxy>                       port_value: 8080     - name: local_service       type: STRICT_DNS       lb_policy: ROUND_ROBIN       load_assignment:         cluster_name: local_service         endpoints:         - lb_endpoints:           - endpoint:               address:                 socket_address:                   address: <IP_ADDRESS>                   port_value: 31001
but I get the following error:
`curl -vvv --proxy-insecure --proxy http://localhost:31000 https://www.google.com -U proxyuser:proxypass

Trying ::1:31000...
Connected to localhost (::1) port 31000 (#0)
allocate connect buffer!
Establish HTTP proxy tunnel to www.google.com:443
Proxy auth using Basic with user 'proxyuser'

CONNECT www.google.com:443 HTTP/1.1
Host: www.google.com:443
Proxy-Authorization: Basic cHJveHl1c2VyOnByb3h5cGFzcw==
User-Agent: curl/7.77.0
Proxy-Connection: Keep-Alive

< HTTP/1.1 200 OK
< date: Wed, 22 Jun 2022 02:30:48 GMT
< server: envoy
<

Proxy replied 200 to CONNECT request
CONNECT phase completed!
ALPN, offering h2
ALPN, offering http/1.1
successfully set certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
TLSv1.2 (OUT), TLS handshake, Client hello (1):
error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number
Closing connection 0
curl: (35) error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number`

@yanavlasov and @alyssawilk please help!

You need to remove connect_config from you route and add TLS transport_socket configuration to the filter chain in the listener_1. See https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener_components.proto#config-listener-v3-filterchain

so it kinda works but I do not understand it fully. So here is the working configuration:
admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
      address: <IP_ADDRESS>
      protocol: TCP
      port_value: 9901
static_resources:
  listeners:
    - name: listener_0
      address:
        socket_address:
          address: <IP_ADDRESS>
          protocol: TCP
          port_value: 31000
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                access_log:
                  - name: envoy.access_loggers.file
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
                      path: /dev/stdout
                stat_prefix: ingress_http
                route_config:
                  name: local_route
                  virtual_hosts:
                    - name: http
                      domains:
                        - "*"
                      routes:
                        - match:
                            connect_matcher: {}
                            # prefix: "/"
                          # redirect:
                          #   port_redirect: 31001
                          #   https_redirect: false
                          route:
                            cluster: local_service
                            upgrade_configs:
                              - upgrade_type: CONNECT
                                # connect_config:
                                #     proxy_protocol_config:
                                #       version: V1
                                #     allow_post: true
                http_filters:
                  - name: envoy.filters.http.ext_authz
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
                      grpc_service:
                        envoy_grpc:
                          cluster_name: ext-authz
                        timeout: 1s
                      include_peer_certificate: true
                      transport_api_version: V3
                  - name: envoy.filters.http.router
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
                # http_protocol_options: {}
                # upgrade_configs:
                # - upgrade_type: CONNECT
    - name: listener_1
      address:
        socket_address:
          address: <IP_ADDRESS>
          protocol: TCP
          port_value: 31001
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                access_log:
                  - name: envoy.access_loggers.file
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
                      path: /dev/stdout
                stat_prefix: ingress_http
                route_config:
                  name: local_route
                  virtual_hosts:
                    - name: http
                      domains:
                        - "*"
                      routes:
                        - match:
                            # connect_matcher: {}
                            prefix: "/"
                          route:
                            cluster: proxy
                            # upgrade_configs:
                            #   - upgrade_type: CONNECT
                http_filters:
                  - name: envoy.filters.http.router
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          transport_socket:
            name: envoy.transport_sockets.tls
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
              common_tls_context:
                tls_certificates:
                  - certificate_chain: { "filename": "/etc/envoy/tls-crt.pem" }
                    private_key: { "filename": "/etc/envoy/tls-key.pem" }
  clusters:
    - name: ext-authz
      type: STRICT_DNS
      typed_extension_protocol_options:
        envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
          "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
          explicit_http_config:
            http2_protocol_options: {}
      load_assignment:
        cluster_name: ext-authz
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: proxy_config
                      port_value: 8100
    - name: proxy
      connect_timeout: 1s
      type: STRICT_DNS
      load_assignment:
        cluster_name: proxy
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: <corp http proxy>
                      port_value: 8080
    - name: local_service
      type: STRICT_DNS
      lb_policy: ROUND_ROBIN
      load_assignment:
        cluster_name: local_service
        endpoints:
        - lb_endpoints:
          - endpoint:
              address:
                socket_address:
                  address: <IP_ADDRESS>
                  port_value: 31001

so when I run this:
curl -vvv --proxy-insecure --proxy http://localhost:31000 https://www.google.com -U proxyuser:proxypass
*   Trying ::1:31000...
* Connected to localhost (::1) port 31000 (#0)
* allocate connect buffer!
* Establish HTTP proxy tunnel to www.google.com:443
* Proxy auth using Basic with user 'proxyuser'
> CONNECT www.google.com:443 HTTP/1.1
> Host: www.google.com:443
> Proxy-Authorization: Basic cHJveHl1c2VyOnByb3h5cGFzcw==
> User-Agent: curl/7.77.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< date: Fri, 24 Jun 2022 07:34:25 GMT
< server: envoy
<
* Proxy replied 200 to CONNECT request
* CONNECT phase completed!
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: self signed certificate
* Closing connection 0
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

but when I run this:
curl -vvv --proxy-insecure --proxy http://localhost:31000 https://www.google.com -U proxyuser:proxypass -k

it works I get back google.com html page.
But I don't understand why I need the -k flag for it to run? Because my corp proxy is not HTTPS and https://www.google.com should have a valid and legitimate cert so why do I need to even provide a server cert in my transport_socket config. If I don't provide it won't work.
Can you please explain @yanavlasov ? Thank you!

Thank you for your quick response. I have a follow-up question:
Is this setup terminating the TLS tunnel for CONNECT only or all the subsequent communication too?
Our use case is we are fine with TLS termination for CONNECT request but the actual HTTP request between the client and destination (https://www.google.com) should still be secure with the client verifying Google's cert. Is this how it works?

CONNECT request is not encrypted. listener_1 terminates TLS connection that will be encapsulated in the CONNECT request.
You have conflicting requirements. You said that Envoy should send unecrypted traffic to your internal proxy.

So our requirement is this:
Our corp proxy is still HTTP (not HTTPS) but it should create a TLS tunnel for the client to server (destination) communication.
so we are okay if the connect TLS connection is terminated by the loopback listener but the tunnel that it creates for client server communication should still be secure. Is that happening with the above configuration or no? If not, then how can we do it?

You have 3 connections. Connection between client and Envoy is encrypted. Connection between Envoy and corp proxy is not encrypted. And only you can answer if connection between corp proxy is origin server is encrypted or not, since you have configured it.


Vue breaks setTimeout() parent scope

Version
2.2.4
Reproduction link
https://jsfiddle.net/g8480yb7/4/
Steps to reproduce
Set a timeout, then initialize Vue.
What is expected?
The timeout callback can access to parent scope variables.
What is actually happening?
Seems like parent scope variables are copies of the original.

On jsfiddle run with and without Vue initialization, behavior changes.

You've to re-query element as innerHTML is treated as <template> and new .test element is rendered.
Updated fiddle: https://jsfiddle.net/g8480yb7/5/

Isn't easy with more than an element.
Updated fiddle: https://jsfiddle.net/g8480yb7/7/

And I could fix it if is my code, but what happens with third party libraries?

InnerHTML of div#app is used as template, you should not query any element inside it until Vue app is mounted.

Then I guess the solution is initialize these libraries or plugins after Vue. Thank you.


In line exemption for custom rules

I wrote the following rule to check for explores that are defined in view files, which we do not want to allow on our instance. When I try to do an exemption within one view file, the in line exemption is not recognized. I saw a similar issue with a custom rule (#50) was resolved,  but wanted to check if different custom rule configurations could still raise issues for in line exemption. Thanks!
#  rule: C3 {
#  description: "Explores must not exist within view files"
#  match: "$.files[*]"
#  expr_rule:
#
#  //for files that are of type view, check that the explore key is undefined If defined, alert the developer
#  ($if
#      ($all
#          (=== ::match:$file_type "view")
#          (!== ::match:explore undefined)
#      )
#              ($concat "View file " ::match:$file_name " contains an explore. Move the explore to the appropriate model file.")
#              true
#  )
#  ;;
#  }

In line exemption
  #  LAMS
  #  rule_exemptions: {
  #   C3: "this explore is actually okay"
  #  }

Hi @nevengrgic :wave:
I vaguely recall intending to make rule ID's of the form [A-Z][0-9]* (i.e. one letter and a number) to be reserved for future LAMS use, so there may be an issue caused by that... but I will look into this and see what I find.

Hi @fabio-looker! Thanks for the quick response.
You are correct about the expected functionality. I also tried changing the name based on your first comment, but that didn't appear to change anything. Appreciate your help!

Hello!
Although this was fixed in 3.0.0-beta.0 , that beta release had several issues. Many of those issues are fixed in the next beta pre-release 3.0.0-beta.1.
v3 release notes
I'll keep this issue open until v3 is out of beta. Thank you for your feedback thus far!

v3 is now generally available.
If you continue to experience any issues, please let me know. Thank you for reporting this and for your continued feedback!


FR: Check that cases aren't duplicated in switch statement

When creating a new case in a switch statement, it may happen that I duplicate an existing case. Wouldn't it be nice if this would generate an error (or at least a warning)
const a = create();
switch (a) {
  case 1:
     ...
     break;
  case 2:
     ...
     break;
  case 1:  // THIS SHOULD GENERATE AN ERROR
     ...
     break;
  default:
     ...
     break;

Oh, this was fixed by #2937! 🎉


NO message

Describe the bug
I haven't any message on my screen
To Reproduce
from terminal run:
sudo /usr/local/bin/dialog --title HELLO
or any other dialog command
Expected behavior
Dialog Message with title HELLO
Desktop (please complete the following information):

macOS version: VENTURA 13.4.1
swiftDialog version: dialog-2.2.1-4591

What is your current "do not disturb" or "focus" setting on the Mac?  Does swiftDialog run if you disable it ?

Focus not enable

is there a secure way to complete remove swiftDialog?

I have the same problem with a fresh new administrator user

I solved by uninstalling all the files and also dialog.log.
Reinstalled now works fine?

Occasionally you can get a lingering ‘quit:’ command in your dialog.log file, which new windows read and immediately quit.

In fact, I solved it by deleting the dialog.log


Adding defer to engine tests

this PR is to enable us to run engine tests for the @defer directive according to the graphql-spec

Are we asserting the new incrementalResponse now or in another PR? Because that isn't happening here.

Are we asserting the new incrementalResponse now or in another PR? Because that isn't happening here.

the assertion will be in its own PR  👍


[Enhancement] (nereids)implement KillQueryCommand in nereids

Search before asking

[X] I had searched in the issues and found no similar issues.

Description
KillQueryCommand is supported in legacy planner but not in nereids(new doris fe planner). you need implement it in nereids.The DorisParser.g4 has the syntax definition already(see bellow). And you can check KillStmt.java in legacy planner to see what the command does and migrate it to nereids planner
unsupportedKillStatement : KILL QUERY (INTEGER_VALUE | STRING_LITERAL)
Solution
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@LiBinfeng-01 can you assign it me ?


Relax aiobotocore versions to < 3.0.0

This relaxes the accepted aiobotocore versions
to < 3.0.0 and provides a testing matrix against
all recent knowmn versions, that can be extended
at will.
I have been a bit daring and made it < 3.0.0 as the
whole matrix passed.
The CI will provide information on what exact minor version of
aiobotocore is tested against including what boto3. As
boto3 is synced there is some backtracking done by pip,
but I kept that as it is. We could provide some hints if required
but I thought it was clearer this way.
@martindurant @freddy-fostvedt @lou-k @manugarri

awesome, thanks for the help @bolkedebruin :)

It is too many checks to add in py3.12 too? That one would only need the most recent aiobotocore, I think.

Let' see what it does against older version - just to keep things simple

We may trim the number of runs in the future if we start having to wait too long for CI to finish. But this will do for now.

Awesome. Thx!

Cool ! Thanks for that @bolkedebruin @martindurant :). That will save us quite a lot of headaches for Airflow


Choose ROS 2 distro deployed on the image

Motivation
Right now, we're only installing ROS 2 galactic, we should be able to install any ROS 2 distro available for focal.
Acceptance Criteria

[ ] Parametrized the image
[ ] Check if other ROS 2 versions works properly

@LanderU @shuhaowu I would parametrize RPI3 and RPI4. For the moment I would default the option to RPI4 and I would leave RPI3 option unimplemented. I would do it as part of the same PR so we define what are the input parameters and what is the expected naming we will use for the releases:
What do you think?

That sounds good. Do you need any assistance in making the builder parameterizable? I'm not sure what state I left it in :sweat_smile:

@shuhaowu, I'll try to do it and will ping you for the review :)

Done here: https://github.com/ros-realtime/ros-realtime-rpi4-image/pull/42


Landsat timelapse bug

Users might not be able to create a Landsat timelapse in Asian countries when creating a map centered in the western world. This is caused by the incorrect longitudes returned from the ipyleaflet draw control (see the ipyleaflet bug). For example, it is showing 259 W (-259), but it should be 101 E. Use the incorrect coordinates to filter Landsat ImageCollection results in no images being returned. Therefore, the timelapse appears black.

This bug has been fixed. Please update geemap using geemap.update_package() and restart the Jupyter kernel to take effect.


New table gets populated with test data

Just trying to get a working proof-of-concept for the site. The migration is mostly complete, just gotta debug some stuff.
Okay I'm marking this spike as complete. This branch isn't meant to be merged, I am imagining that chunks of it will be adapted on implementation time. Lat/long data can be returned by postal code and the distance between two points can be via the pointsToDistance util function.

Closing this spike out :) will be implemented in HCAP-208 this sprint


Please enable cookies on every ajax call

hi,
first thank you for nice tool. i like your tool for wol. but having some little problem with it.
when hit login button call https://domain.com/api/users/login and get error "Please enable cookies."
also get same error on https://domain.com/api/users/count
i use cloudflare tunnel with email verification, so cookie is required on every ajax/jQuery request.
so, i request to you please enable current cookie to every ajax call in wol-web soon as possible.
thank you,

solved,
may be browser issue.

not include cloudflare authorized cookie in every ajax call,  so, request is rejected by cloudflare and ask for enable cookie.
only include "cookie: jwt=eyJhbGciOi...".
cloudflare tunnel authorized cookie: CF_Authorization=eyJhbGciO....

some time work, some time not work..  now working..


crasher in rtp.Unmarshal

I encountered a panic due to a bounds exception while parsing a malformed RTP packet.
Version: 1.1.1
panic: runtime error: slice bounds out of range

goroutine 33 [running]:
github.com/pions/webrtc/pkg/rtp.(*Packet).Unmarshal(0xc00024a000, 0xc0001f6000, 0x1d4c, 0x1d4c, 0x1d4c, 0x0)
        /Users/max/go/pkg/mod/github.com/pions/webrtc@v1.1.1/pkg/rtp/packet.go:98 +0x47d
main.(*Demo).startConn.func3(0xc0000ccaa0, 0x43f9500, 0xc0000b05c0, 0xc0000bc130, 0xc035d87123, 0xc0000be9c0)
        /Users/max/projects/asciirtc/main.go:139 +0x18a
created by main.(*Demo).startConn
        /Users/max/projects/asciirtc/main.go:123 +0x1e0

Looks like this can be fixed by changing headerLength (line 30 of packet.go) from 4 to 12. also, that headerlength constant only seems to be used in Unmarshal, should we move it to function scope?

Thanks for finding this @maxhawkins!
I will grab this (write a test will invalid packet + fix)


Add stylis

Sent a PR for stylis though it's now conflicting with recent changes, but before i updated the PR i wanted to know if there was a problem with the implementation the first time around? For example simple-case since stylis works on strings and the style descriptors are objects here.

Hey @thysultan, the PR aged a bit and also the code was really messy. Sorry if I didn't comment on it, but you can still make it of course.

@PepijnSenders stylis does not work on Objects, i'd have to create string equivalents for the test to work, so i hope that's ok.

That's also the reason why I didn't include CSS Modules, CSJS or CSSX, as they use their own DSL in string form to express CSS. Keeping the styles in synch to these is even more work than currently... 😉
On the positive side, I hope my changes make integrating a new library easier (less files to change).
On a quick look, I feel that Stylis doesn't namespace the styles, so I wonder if it fits in the spirit of the tested libraries. I wonder how it would behave in my complex-test (pending PR) where I deliberately make conflicting class names (container, button used in different contexts).

@PhiLhoSoft stylis does namespace styles, namespaces are defined by the author.
stylis("#user", `
color:blue;
h1 { color: red; }
`)

// becomes

#user { color: blue; }
#user h1 { color: red; }

@thysultan you can use any other library to generate css string outside of test case and then use the generated string to pass it to stylis inside of test case.


refactor(typography)!: use core tokens

Description
This updates Typography tokens using spectrum-tokens typography.json.
https://pr-1557--spectrum-css.netlify.app/docs/typography.html
The tokens are organized into 4 component sections: Heading, Body, Detail, and Code. Each section has examples organized by t-shirt size, font classification, and font weight, however, each component has different requirements for these styles.
How and where has this been tested?
Tested in Chrome and Windows high contrast mode by reading the examples and reviewing the styles.
Screenshots

To-do list

[x] If my change impacts other components, I have tested to make sure they don't break.
[x] I have tested these changes in Windows High Contrast mode.

[ ] This pull request is ready to merge.

Released<EMAIL_ADDRESS>

@pfulton how are we feeling about getting this one merged?

This PR introduced a regression where user-agent margins are not reset, thus all h1/p using spectrum-Heading/spectrum-Body now have an incorrect margin (used to be 0 without .spectrum-Typography wrapper class).


Increasing the adjustment interval from 135 to 150

Increase adjustmentInterval to 150
Abstract
This recommends an increase of adjustmentInterval from 135 blocks to 150 blocks.
Motivation
A continuation of #35, the increase in adjustInterval saw a drop in immunity peers. However, within the past two weeks, the number of immune peers have risen once again from 280 -> 306. To compensate for the increase in immune peers, we should preempt issues that we saw before and increase the adjustInterval slightly.
Specification
Param: adjustInterval
Initial Value: 135
Suggested Value: 150
Time of Effect: 12 December 2022 (projected)

Sudo at block: 2,901,519


zabbix: init at 5.0

Motivation for this change
New LTS release of zabbix :tada:
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Needs db changes yet. Still working on that.

ping @PsyanticY @mmahut this is finally ready. I have tested that both server and proxy correctly launch on new install and clicked around a bit on the web interface. Ready for merge, but would like a second set of eyes please.

https://github.com/NixOS/nixpkgs/pull/87712
1 package blacklisted:
tests.nixos-functions.nixos-test

7 packages built:
zabbix.agent zabbix.proxy-mysql zabbix.proxy-pgsql zabbix.proxy-sqlite zabbix.server zabbix.server-mysql zabbix.web

might be nice to get some nixosTests, be easier to assert they are working as intended

Agreed. Not sure if @mmahut was still working on that or not... at one point they were.


Optionally specify sort order for initial snapshot

The initial database snapshot does a SELECT * which returns rows in an unspecified order. This can cause the initial batch of messages in Kafka to appear "out of order" compared to when the rows were inserted in the database.
I'm trying to use Bottled Water to capture changes in a table that contains log messages, which have an order to them. The potentially jumbled order of the initial snapshot makes the initial messages not very useful. In my case, simply sorting on the primary key would be sufficient.

@kinghuang that's an interesting use case.  Roughly how big (bytes or rows) is that table?  Is the primary key an autoincrementing integer, or are you using a timestamp as the primary key?  How does the volume of writes compare to the volume of reads?
I can see why you'd want to preserve the order of logs, but in general relational databases don't make many guarantees about ordering, so they're not really optimised for that.  Given Kafka is pretty optimised for order-preserving delivery of messages, is there a reason you don't want to write the log messages directly to Kafka?
The main concern I'd have is that the initial snapshot is already an expensive operation, and adding an ORDER BY would make it more so.  I'm not an expert on Postgres query optimisation, but I'm pretty sure even an index scan is more expensive than a simple sequential scan through the table.  (I did a very quick microbenchmark suggesting it was about 50-100% slower.)
(The configuration for which ORDER BY clause to use for which table could also get pretty complex.  Bottled Water already knows which columns are present in the primary key, so it could try and default to the primary key for each table; but the primary key wouldn't in general be the right thing to order by.)

Roughly how big (bytes or rows) is that table? Is the primary key an autoincrementing integer, or are you using a timestamp as the primary key? How does the volume of writes compare to the volume of reads?

There's two tables in a sample dump of an application's database that I'm working with right now. Table A has 37000 rows; table B has 638000 rows. The primary key is an autoincrementing integer in both tables. They contain activity logs from an application, and have very high write but low read volumes. The numbers will be much higher in the production system.

…, is there a reason you don't want to write the log messages directly to Kafka?

I very much wish that were possible! :) This is a third-party application. It doesn't offer any choices on where it writes these particular logs. We're processing these tables to feed a real-time event system.
One thing that occurred to me after I opened this issue is that I'm running into this problem because I'm processing existing data for use during development. Bottled Water works fine for new rows as they're written when the application is running.
That said, my expectations when I first tried this was that the messages in Kafka would reflect the order that the rows were written. This has held true for table A, but not table B. So this is a specific use case where the table rows have a natural order to them, and I'd like that reflected in the initial snapshot that Bottled Water makes.


Extended custom element creation

For now elementOpen supports custom element tag names, but what if it's required to create custom element, extended from built-in?
Like in this example from MDN:
let el = document.createElement('ul', { is: 'expanding-list' })

That seems to be not implemented: https://github.com/google/incremental-dom/blob/9a78593b62a6000a2942c36f92025d7af81bb8aa/src/nodes.ts#L70
Is there any possible workaround or solution to that? Tricks in notifications.nodesAdded?
Any hope that will ever get added?

Incremental DOM's current API does not support is directly, though a new one could be added in the future. While this is standard, I think the API is still a bit contentious, and I would like to see all major browsers adopt this before making an API change to support this functionality first class.
There are currently two options if you need to create such a custom element. Given a custom element definition:
class MyList extends HTMLUListElement {
  constructor() {
    super();
  }
}
customElements.define('my-list', MyList , { extends: "ul" });

If you have the element definition, pass the constructor to Incremental DOM:

elementOpen(MyList, key, statics);
...
elementClose(MyList);

If you don't have the element definition (e.g. need to asynchronously load the definition):

function MyListConstructor() {
  return document.createElement('ul', { is: 'my-list' });
}

elementOpen(MyListConstructor, key, statics);
...
elementClose(MyListConstructor);

The second is a little inefficient in that it creates an extra object that gets thrown away immediately (when Incremental DOM uses new), but the cost is likely not a big deal compared to the element creation itself.

The second case is actually a blocker, if we persist that extended custom element state. With the next patching the state is lost.

The second case is actually a blocker, if we persist that extended custom element state. With the next patching the state is lost.

Ah, it doesn't pick it up as a matching node. You can do:
function MyListConstructor() {
  return document.createElement('ul', { is: 'my-list' });
}

MyListConstructor.prototype.toString = function() {
  return 'ul';
};

Unfortunately, there doesn't seem to be a way to distinguish this from a plain <ul> as far as DOM diffing goes. So if you had a <ul> adjacent, they could get reused depending on the control flow. As a result, I would strongly recommend enforcing usage of a key if you are going to use this pattern. Note that keys do not need to be unique anymore, so all your instances of the extended custom element can share the same key.

Actually, looking at it again, the toString is only needed if you server-side render the extended element. If you client-side render it, it should reuse the element correctly.
If that is not the case, do you have an example where the element is not being reused?

My bad, I overlooked that I should’ve passed the same function each render call. It works like a charm, thanks for your reply.


How to deal with feedback_required ?

Sometimes I got a payload like this :
{
"json":{
"message":"feedback_required",
"spam":true,
"feedback_title":"Sorry, this feature isn't available right now",
"feedback_message":"An error occurred while processing this request. Please try again later. We restrict certain content and actions to protect our community. Tell us if you think we made a mistake.",
"feedback_url":"repute/report_problem/instagram_like_add/",
"feedback_appeal_label":"Report problem",
"feedback_ignore_label":"OK",
"feedback_action":"report_problem",
"status":"fail"
},
"name":"ActionSpamError",
"message":"This action was disabled due to block from instagram!"
}
The only way of getting out of this is to "Report problem" because it's really not a spam... but I don't see where we can do that through this library.
Thanks for helping !

Same here. Having the issue since few days on 1-2 accounts and now seems that IG updated their system. Is there something that we can do while we wait for an IG update or from who maintain the repo?

There is no way to resolve it with module. It's IG block. Just pause this action for 24 hours.

Yep, if IG changes the endpoints, will the library updated?

Sure. But it doesn't look like they changed it for now :)

No endpoint changed, but when it happens on a real device and I click "report a problem", I can directly like again because it's really a mistake from instagram. There is no way to achieve that ? or to add that in the library ?

Then we have to wait IG. I'm into several IG discussion groups and all the bots died today (liking/commenting).

Do you have link to discussions ?

Nope but that happened.

I heard that refreshing proxies (if used) might resolve. I don't really believe that theory btw.
Today an IG update was rolled on the App Store and it's pretty heavy, so maybe there is the fix (?)

Well, last Insta version has this request body.
If liking from photo view:
{
    "media_id":"1600809097966712359_4327427528",
    "module_name":"photo_view",
    "user_id":"6028593528",
    "_uid":"2503871596"
}

Liking from feed:
{
    "media_id":"1600809097966712359_4327427528",
    "module_name":"feed_timeline",
    "_uid":"2503871596"
}

And this is our module body:
{
    media_id: "1600809097966712359_4327427528",
    src: "profile"
}

Probably we'l need to improve our module and try it :)
Fiddler like archive

@IvanMMM I've looked into this already yesterday. In this request IG uses signature key version 5. Our current version is 4.

If you need any help let me know :)

is someone working on it or need help ?

Yes, we need help, because we have no time to learn it :)

Is just the retrive of the new API key a solution? I might find out how to retrive it and send it to you or if you tell me what we have to do I can forward to my IT team :)

@sppmaster https://mokhdzanifaeq.github.io/2015/09/28/extracting-instagram-signature-key-2/

Yeah, just this need to be done or there something else too?

@sppmaster, we got new key, thx to @mme76. And we can sniff iPhone traffic, so that's a good start already. Problem is this new private key is from Android app and there could be difference between IOS and Android versions. Anyway, we are about to know it soon :)

On iPhone I should find a JB iPhone I guess, as there isn't a Developer mode into. Will forward your request (It will be great if you can do SSL unpinning for android app.) to my team

No need to unpin in iOS. Just android.
Check this. Got a key by this method.

Still having the issue btw

so do i

Are you feeding the APIs directly with the ID of the media?

same problem.
my code has worked since last year, but now has stopped working.
it was a post request to https://i.instagram.com/api/v1/media/{medi_pk}/like with a json dictionary like this:
var dic = new Dictionary<string, string>
  {
   {"_uuid",        a new guid },
   {"_uid",         myself insta username  },
  {"_csrftoken",    csrftoken },
   {"media_id" ,    the pk of the media }
 };
then encode sha-256 and migrating  by same old signature key.
i think we should use a new signature key... but how?

Isn’t the new key updated just b updating the library itself?

Il giorno 29 set 2017, alle ore 16:12, Masoud Chegeni<EMAIL_ADDRESS>ha scritto:
same problem.
my code has worked since last year, but now has stopped working.
it was a post request to https://i.instagram.com/api/v1/media/{medi_pk}/like with a json dictionary like this:
var dic = new Dictionary<string, string>
{
{"_uuid", a new guid },
{"_uid", myself insta username },
{"_csrftoken", csrftoken },
{"media_id" , the pk of the media }
};
then encode sha-256 and migrating by same old signature key.
i think we should use a new signature key... but how?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/huttarichard/instagram-private-api/issues/330#issuecomment-333137491, or mute the thread https://github.com/notifications/unsubscribe-auth/AQ01fjioL2Ez50UpciWSMTEeVq5ebVnVks5snPrcgaJpZM4PSQZO.

No... The new key doesn't fix the problem at all...

@sppmaster
i don't use any library. i wrote all of the code from the first. so the signature key is hard coded in my application.
How can i generate a new signature key...?

https://mokhdzanifaeq.github.io/2015/09/28/extracting-instagram-signature-key-2/
This is to update the key

The issue is certainly related to the change that @IvanMMM notified previously

A few important points:

the iPhone version and the Android version use slightly different endpoint syntaxes and a different signature version (5 vs 4). This has been the case for a long time. We can't use iPhone captures to emulate Android behavior

Any changes in the endpoint syntax must match exactly the specific app version, User Agent string and key version. We can't simply use a new key and the old syntax or viceversa

the real apps constantly post analytics and stats about user behavior, that we (or any of the 3rd party APIs) don't emulate

as we all noticed, around 9/8 Instagram lowered their limits, in addition to getting better at detecting automated behavior, proxies from public cloud providers, aggressively blocking IPs and so on...

On Sep 29, 2017, at 11:15 AM, Jean-Yves DELMOTTE<EMAIL_ADDRESS>wrote:
The issue is certainly related to the change that @IvanMMM notified previously
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I'm not familiar with this api but i had the same problem and i have almost solved it . If you get the error message on your first like this is not the reason but if you can like some medias then the error happens the problem is probably with "module" . When you like an image/video/media you need to send a "module" name ( or the page that you found and liked that media from )
Liking/commeting an stranger photo/video/media module would be "photo_view_profile" or "video_view_profile" or "comments_photo_view_profile" . Every different page/media_type has different moudle name . You also need to pass extra data for some modules
This "module" thing has been added to many endpoints . For example when you request a user data by pk you should pass a request containing where you found that user from ( /api/v1/users/xxxxxx/info/?from_module=self_follower )

Half of my accounts are limited again .
This error is killing me

@IvanMMM any progress with module_name? Need any help?

Hi @dimasusername, I need some help. You solve this problem? the module helps me, but the problem persists in some accounts.

Does anyone got updates?
I've seen that is pretty random. Sometimes it says "Feedback_required" and sometimes after few seconds/minutes/hours it works.

There are also some new custom headers
I've added module and custom headers to my api but the problem still exists

@dimasusername Hi . Did you solve this problem? I'm even downloading the image before liking ( since you can't double-tap any image before it's loaded ) but most of my accounts still get this error

@moosbat How many accounts? Are you using proxies?

@ibrunotome About 400 . Yes and i've tested 4-5 proxy providers . Even residental proxies . It's an API issue

I'm switching proxy providers too but still get the issue. Just a note: I get ActionSpamError if I use the account also for following/commenting and other stuff. By just liking they works pretty fine.
If I follow/like/comment I get ActionSpamError with APIs but not from the app itself.

I don't know why but today, with my proxies (the old ones) I have an higher results. Before 60/100 were liking, today 80-90/100, does something changed at your end?

I can like up to 1k photos on some accounts but after some days the errors happens and i have to slow down for a while . This error happened for a few days 3 month ago then went away for a month and accounts started to get banned and now it is back again . They might be trying to detect bots so be careful with like untill you know what is wrong . I'm pretty sure it is an api issue even tho i'm watching the traffic from my phone and i'm doing exact same thing on my bot

Is to much ask you a resume of "exact same thing on my bot" ?, I'm just doing what you said about pass the modules.

I would share my code if it could be any help to this issue but since i'm having this problem with most of my accounts i rather not share my bot strategy or codes . But i can send you a Charles session of latest Instagram android app activities so you can see what original application is doing

I would appreciate that, I'm just using the Api, but will start to study more deep into it because this errors.

this happen with me using any proxy even if its private new one its kinda instagram detecting proxies

@IvanMMM how do track the ios endpoints without unpinning? here the requests are encrypted.

Still no news?

@MMrR0b0TT download cracked ipa from 4pda and upload it to device via Impactor. And you will be able to see requests with charles(don't forget to add charles cert to your device)

Still no news?

@alex-yatsenko-sas I didn't find it on 4pda, could help me finding a Iphone5s cracked version?
thanks

@michelank https://www.iphonecake.com/app_389801252_.html

Woah. That's a huge topic now :)
Well. We are trying to ride dying horse. All we need it new signature key 5 and Android apk file w/o ssl pinning. That's for the beginning. Problem is we can't get it.

@michelank https://4pda.ru/forum/index.php?showtopic=578083

@IvanMMM describe how to get those and I'll have my team get them

@dimasusername, actually we already got it. Working on v23 already :)

@IvanMMM When do you think you'll update the framework? And also the follows problems #387.
If you need me to write some code or test anything let me know, these two are dealbreakers for us.

you can report the problem by making signed post request to provided feedback_url. Example:
https://i.instagram.com/api/v1/repute/report_problem/instagram_like_add/, post body fields {"_csrftoken":"MNJY2yqFVIeHYiZHaux2jEZ9Rn9dDl0v","_uid":1,"_uuid":"d2d55f4b-b2b5-49a1-94b9-9e873fa4e9f9"}
NOTE that request should be signed with signature key according to the version you are using and _uid should contain your user's id.
Should get response
{"status": "ok"}
Regards


TASK INTERVAL IN SECONDS ?

Hello, I tried to change the task interval to seconds (i need some click and number to be send every 10 secs or so) but it doesnt work, know any way to change it ?

Sorry for the late response.
What specifically doesn't work?
What value(s) did you end up using?


WIP: Unprepare resources of inactive pods

When pods are force deleted or become inactive for other reasons kubelet should be able to find them and correctly call NodeUnprepareResources. This is done by introducing reconcilation loop which periodically checks for inactive pods and un-prepares their resources if needed.

Is this PR valid anymore?

it's not. Thanks for pointing this out. closing.


WIP: Network endpoints

Fixes #7
Endpoints to:

[x] create networks
[ ] update networks
[ ] delete networks
[ ] functionality to delete userless networks iautomatically

@nightsh I would appreciate a lot if you could give an opinion on this, especially the code in networks controller.

I closed this and created #64 because network update is not clear and there's no need to keep network creation stagnated.


Looking for info on functions that reside in files that use Template haskell shows lots of generated code instead of just the normal type information

I think you probably already know about this but I couldn't see an issue logged for it.
So it shows the definition signature correctly and also links to jump to the content still work but there's loads of other random output that comes first.  I assume this is some of the generated code, however I'm unsure as the template haskell is coming from yesod and it means very little to me!  It seems to be grouped by <no location info>: headers and talk about splicing expressions.
This is the case even for functions that don't involve template haskell code.
It'd be nice not to have all the stuff at the top as it takes over the whole vim window and disrupts workflow... (I know that could be solved in the vim plugin aswell but running from the command line I see the same information)
Cheers
Jonny

Okay thanks. Can you point to an example module?
Sent from TypeApp
On Nov 3, 2017, 11:44, at 11:44, JonnyRa<EMAIL_ADDRESS>wrote:

I think you probably already know about this but I couldn't see an
issue logged for it.
So it shows the definition signature correctly and also links to jump
to the content still work but there's loads of other random output that
comes first.  I assume this is some of the generated code, however I'm
unsure as the template haskell is coming from yesod and it means very
little to me!  It seems to be grouped by <no location info>: headers
and talk about splicing expressions.
This is the case even for functions that don't involve template haskell
code.
It'd be nice not to have all the stuff at the top as it takes over the
whole vim window and disrupts workflow... (I know that could be solved
in the vim plugin aswell but running from the command line I see the
same information)
Cheers
Jonny
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/hdevtools/hdevtools/issues/72

I'm not seeing this in all template haskell files...


Update gradle version from 2.10 to 3.3

The version 3.3 brings a lot of performance improvements and bug fixes
As can be seen in the following link:
https://docs.gradle.org/current/release-notes
Signed-off-by: Bruno Bottazzini<EMAIL_ADDRESS>

Hi @brunobottazzini a Nebula update may also be required to get gradle 3.x to work for this project. Thanks.


Add news.m.pchome.com.tw

Sample: http://news.m.pchome.com.tw/living/cna/20161227/index-14828093096141018009.html

Thanks for the submission. Please attach screenshot, too.


Option to set firmer / absolute end stops

I love this component, it is the first carousel component (after installing at least 4 others) that worked perfectly out of the box. However, after playing around a bit I realise that there is no end stop. You can drag the carousel past the end of the line, and though it springs back, it looks a bit messy in my implementation.
I envisage a prop endStops with the options 'normal', 'firm' (for a small but restricted drag distance back) and 'hard' being impossible to drag past the end or beginning slide. If the 'firm' option is too difficult, the 'hard' option is all I really need. (an alternative name could be 'absolute').
I did have a look through the docs, but couldn't see any mention of an appropriate prop anywhere - apologies If I missed it though. I feel like this wouldn't be difficult to do, but I would have no idea where to start. I don't even know how the sliding/dragging works in the first place.

Hello @finnmerlett. Just verifying your feature suggestion to make sure I understood. How the carousel currently works when a user reaches the last item of a non-infinite carousel, the carousel does not have a boundary allowing the user to attempt to drag past the last item and you are proposing having an optional prop that would prevent dragging past the last slide correct?
https://user-images.githubusercontent.com/14241878/112895122-b75b8300-90aa-11eb-837f-c52c6a3d2179.mov


feat(vault): create package

Current dependencies on/for this PR:

main

PR #2830   👈

This comment was auto-generated by Graphite.


openid "installed" provider signup only?

currently I have created an OAuth2 application via the admin, however I know need to enable
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true

to allow self registration?
however wouldn't that expose my gitea instance to anybody that can provide a openid signup?
is there any way to actually configure gitea to only allow self registration for predefined openid / oauth2 providers?

currently I have created an OAuth2 application via the admin, however I know need to enable
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true

to allow self registration?
however wouldn't that expose my gitea instance to anybody that can provide a openid signup?
is there any way to actually configure gitea to only allow self registration for predefined openid / oauth2 providers?

Hi @schmitch You closed the issue, yet : did you manage to  spawn the configuration you desired ? (auto-registering OIDC auth allowed, but from limited providers ? )


replace void* types with typedef

The const char * const type can be defined as a typedef to simplify the code.
This would remove the void* casts.

eg. "typedef const char * const vidbo_input;" in vidbo.h

And this one should be done now as well I guess


Help me bro i don't know how to refresh drop down lol

Can you help me please? I need help with this situation 😭😭😭

Use SetValues

Please bro i really don't know, give me some example


Frequent timeouts cause Entities to go unavailable for a short time.

The Hayward API is timing out frequently causing entities to go unavailable for a short time and potentially affecting automations that rely on sensor (or other entity) data.
Need to find a way to keep the last values in the case of a timeout rather than going unavailable.

Bonus: If the local representation of the switches could update prior to the next polling it would be great, even if they have to correct later on. I'm putting instructions in my dashboard to tap a switch then wait instead of tapping again, because the switch state doesn't update until after the polling.

@djtimca So glad you opened this - I was about to open something similar. What is the timeout value in the calls? Could it stand to be longer? Bit of a worry there are so many timeouts.
@MHillyer Hmmm, I would have thought a switch toggle just went through to Hayward immediately, rather than waiting for a poll cycle. But maybe the API is slow to respond to these as well.

@sddgit timeout is set to 20 seconds currently, but I'm likely going to move it back to 10 seconds (since there was no meaningful change in performance either way). Seems that if the Omnilogic API doesn't respond basically immediately, it won't respond.
The issue with switches is actually related to the delay between the command being sent to Hayward and the updated state appearing in telemetry. I'm actually going to open a separate enhancement issue for that to have switches "assume" a state for 30-45 seconds or so to wait for the telemetry to catch up. One of the fun oddities of this API.

Thanks for all the changes you’re implementing to get around the API “oddities”. Out of interest, does the API have any sort of rate limiting on it?

It isn't supposed to. When I checked with them a couple years ago the API was supposed to handle 10+ calls per second.

From each client?

Yep - should be able to hammer it. I suppose a test could be to reduce polling interval to see if you get less timeouts.

You mean to make the polling interval more than 6 seconds so it polls less often (as a test)?

I’m still seeing lots of timeouts in the log with 1.0.12 (which may be expected).
I have set the default polling interval to 30 seconds in today's release and extended the timeout to 30 seconds as well. Hoping that this will drastically reduce the number of errors in the logs, but will keep an eye on it.

I have absolutely no idea about how integrations are coded. But does that mean, if there’s a timeout, you can’t just completely ignore it, or force the last state on the sensors and switches?

Thanks for the clarification. I’m also not seeing any problems using 1.0.13. What do you put that down to mostly? The change to polling interval or polling timeout?


RunThreaded changes.

Returns function return values.
Schedules calls in the order of the args lists (previously reverse).
Preserves interruptability.

Looks nice to have. Any chance of using ThreadPoolExecutor from concurrent.futures? If possible, it would be nice to have a single function to execute tasks in parallel (that takes an Executor).

I encountered two problems with ThreadPoolExecutor: doesn't support daemon threads / custom thread types, and isn't interruptable in Python 2.7. If you know a solution for these, I agree it would be preferable to use that class.

I believe the threads spawned are daemons, but I don't know of any way to handle custom thread types / interruption in 2.7. Thanks for the explanation.

test this please.

test this please.

LGTM.


Mobile text selection is difficult

I want to select the text in the mobile editor, edit it, and find that it is almost impossible to select the text I want, because it will automatically pop up a drop-down box, but I have not selected the text I want. How do I prevent this editor from automatically popping up a drop-down box on the mobile terminal

That's probably a CKEditor 4 problem. Maybe you have more luck with CKEditor 5 (see https://github.com/django-ckeditor/django-ckeditor/issues/482 for the discussion around it)


chore: release master

:robot: I have created a release beep boop
core: 0.0.20
0.0.20 (2023-06-08)
⚠ BREAKING CHANGES

rename package from @waku/create to @waku/sdk (#1386)

Features

Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel (#1379) (f32d7d9)
Rename package from @waku/create to @waku/sdk (#1386) (951ebda)

Dependencies

The following workspace dependencies were updated

dependencies

@waku/interfaces bumped from 0.0.14 to 0.0.15
@waku/utils bumped from 0.0.7 to 0.0.8

dns-discovery: 0.0.14
0.0.14 (2023-06-08)
Features

Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel (#1379) (f32d7d9)

Dependencies

The following workspace dependencies were updated

dependencies

@waku/enr bumped from 0.0.13 to 0.0.14
@waku/utils bumped from 0.0.7 to 0.0.8

devDependencies

@waku/interfaces bumped from 0.0.14 to 0.0.15

@waku/enr: 0.0.14
Dependencies

The following workspace dependencies were updated

dependencies

@waku/utils bumped from 0.0.7 to 0.0.8

devDependencies

@waku/interfaces bumped from 0.0.14 to 0.0.15

interfaces: 0.0.15
0.0.15 (2023-06-08)
Features

Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel (#1379) (f32d7d9)

@waku/message-encryption: 0.0.18
Dependencies

The following workspace dependencies were updated

dependencies

@waku/core bumped from 0.0.19 to 0.0.20
@waku/interfaces bumped from 0.0.14 to 0.0.15
@waku/utils bumped from 0.0.7 to 0.0.8

@waku/message-hash: 0.1.4
Dependencies

The following workspace dependencies were updated

dependencies

@waku/utils bumped from 0.0.7 to 0.0.8

devDependencies

@waku/interfaces bumped from 0.0.14 to 0.0.15

@waku/peer-exchange: 0.0.13
Dependencies

The following workspace dependencies were updated

dependencies

@waku/core bumped from 0.0.19 to 0.0.20
@waku/enr bumped from 0.0.13 to 0.0.14
@waku/utils bumped from 0.0.7 to 0.0.8

devDependencies

@waku/interfaces bumped from 0.0.14 to 0.0.15

@waku/relay: 0.0.3
Dependencies

The following workspace dependencies were updated

dependencies

@waku/core bumped from 0.0.19 to 0.0.20
@waku/interfaces bumped from 0.0.14 to 0.0.15
@waku/utils bumped from 0.0.7 to 0.0.8

sdk: 0.0.16
0.0.16 (2023-06-08)
⚠ BREAKING CHANGES

rename package from @waku/create to @waku/sdk (#1386)

Features

Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel (#1379) (f32d7d9)
Rename package from @waku/create to @waku/sdk (#1386) (951ebda)

Dependencies

The following workspace dependencies were updated

dependencies

@waku/utils bumped from * to 0.0.8
@waku/relay bumped from 0.0.2 to 0.0.3
@waku/core bumped from 0.0.19 to 0.0.20
@waku/dns-discovery bumped from 0.0.13 to 0.0.14

devDependencies

@waku/interfaces bumped from 0.0.14 to 0.0.15

@waku/utils: 0.0.8
Dependencies

The following workspace dependencies were updated

devDependencies

@waku/interfaces bumped from 0.0.14 to 0.0.15

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/utils-v0.0.8 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/interfaces-v0.0.15 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/message-hash-v0.1.4 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/enr-v0.0.14 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/peer-exchange-v0.0.13 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/core-v0.0.20 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/dns-discovery-v0.0.14 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/message-encryption-v0.0.18 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/sdk-v0.0.16 :sunflower:

:robot: Release is at https://github.com/waku-org/js-waku/releases/tag/relay-v0.0.3 :sunflower:


Update travis for version 5

Q
A

Bug fix?
no

New feature?
yes

Doc update?
no

BC breaks?
no

Deprecations?
no

License
MIT

version 5 is out of support and will not be changed to work under newer php versions.

Indeed, version is not maintained anymore, let's close.

thank you.. I asked also on slack but I didn't have an answer... 😄


[New game]: Samurai Game

🎮 Game Request
Game logic and basic description
This is a fighting game based on ninja samurai using JS.
Point down the features
Game points
Single player game.

Hey @anandpiyush1521 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @anandpiyush1521 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


blo 'cargo test' patches for latest loco master branch

Using cargo fix ... by following suggestion ;)

warning: `blo` (test "mod") generated 3 warnings (run `cargo fix --test "mod"` to apply 2 suggestions)
    Finished test [unoptimized + debuginfo] target(s) in 2m 45s
     Running unittests src/lib.rs (target/debug/deps/blo-38b25b6eccb26803)

without this patch

   Compiling blo v0.1.0 (/home/me/github/learnrust/loco/examples/demo)
warning: unused import: `super::prepare_data`
 --> tests/requests/notes.rs:1:5
  |
1 | use super::prepare_data;
  |     ^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `axum::http::HeaderValue`
 --> tests/requests/notes.rs:2:5
  |
2 | use axum::http::HeaderValue;
  |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: function `compression_header` is never used
  --> tests/requests/prepare_data.rs:56:8
   |
56 | pub fn compression_header() -> (HeaderName, HeaderValue) {
   |        ^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: `blo` (test "mod") generated 3 warnings (run `cargo fix --test "mod"` to apply 2 suggestions)
    Finished test [unoptimized + debuginfo] target(s) in 2m 45s
     Running unittests src/lib.rs (target/debug/deps/blo-38b25b6eccb26803)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/main.rs (target/debug/deps/blo_cli-ec5a0cbf488290d8)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/cli_tests.rs (target/debug/deps/cli_tests-54fc97a4f9c08f46)

running 1 test
test cli_tests ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/mod.rs (target/debug/deps/mod-2b269e28e404685f)

running 26 tests
test models::users::can_set_forgot_password_sent ... ok
test models::users::can_find_by_pid ... ok
test models::users::can_verification_token ... ok
test models::users::can_reset_password ... ok
test models::users::can_verified ... ok
test models::users::test_can_validate_model ... ok
test requests::auth::can_login_with_verify::case_2 ... ok
test requests::notes::can_add_note ... ok
test requests::auth::can_register ... ok
test requests::notes::can_delete_note ... ok
test requests::auth::can_login_with_verify::case_1 ... ok
test requests::auth::can_login_without_verify ... ok
test requests::auth::can_reset_password ... ok
test requests::notes::can_get_note_gzip ... ok
test requests::notes::can_get_notes::case_1 ... ok
test models::users::can_create_with_password ... ok
test requests::notes::can_get_notes::case_5 ... ok
test models::users::handle_create_with_password_with_duplicate ... ok
test tasks::seed::test_can_seed_data ... ok
test requests::notes::can_get_notes::case_4 ... ok
test requests::user::can_get_current_user_with_api_key ... ok
test requests::user::can_get_current_user ... ok
test models::users::can_find_by_email ... ok
test requests::notes::can_get_notes::case_2 ... ok
test requests::notes::can_get_note ... ok
test requests::notes::can_get_notes::case_3 ... ok

test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.89s

   Doc-tests blo

running 1 test
test src/tasks/seed.rs - tasks::seed (line 14) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s

@tjyang can you rebase against current master?


Connect device modal is confusing

I am confused by the connect device modal. I know the design intention is that you pick USB or serial depending on the brain you have.
It is unusual for a button to appear as the title of each section. My instinct was to click on the picture of the thing I have as opposed to identifying the brain I have and clicking on "connect USB" or "connect serial".
I think the header "connect USB"/"connect Serial" buttons should be removed in place of a connect button for each device picture. The user does not care between the distinction of USB/Serial, that is an implementation detail. The button should just be connect.

Clicking on images is misleading because we don’t choose specific hardware when connection,  we connect to any usb device or any serial device.

From: James Devine @.>
Sent: Wednesday, November 17, 2021 1:45:21 AM
To: microsoft/jacdac @.>
Cc: Peli de Halleux @.>; Assign @.>
Subject: Re: [microsoft/jacdac] Connect device modal is confusing (Issue #842)
Assigned #842https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fjacdac%2Fissues%2F842&data=04|01|jhalleux%40microsoft.com|c38f288c14274c0571d108d9a9aef936|72f988bf86f141af91ab2d7cd011db47|1|0|637727391262496154|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=cHogT%2BkkNpA8Jf%2BvMbal576n1kepN6MLUK%2BpVwgEDII%3D&reserved=0 to @pelikhanhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpelikhan&data=04|01|jhalleux%40microsoft.com|c38f288c14274c0571d108d9a9aef936|72f988bf86f141af91ab2d7cd011db47|1|0|637727391262506155|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=DKSHgAbCh2e9Jo4JcwMIcALd1BUgaERy%2BFNdNnUjFgY%3D&reserved=0.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fjacdac%2Fissues%2F842%23event-5630590715&data=04|01|jhalleux%40microsoft.com|c38f288c14274c0571d108d9a9aef936|72f988bf86f141af91ab2d7cd011db47|1|0|637727391262516147|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=BXXg2L5ZYFqDNd%2FaTBm7JsLtb10N0CdviV%2B5yI22G8s%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAA73QKM75XX7I7L4QWKM47LUMN2TDANCNFSM5IGO7YGA&data=04|01|jhalleux%40microsoft.com|c38f288c14274c0571d108d9a9aef936|72f988bf86f141af91ab2d7cd011db47|1|0|637727391262516147|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=DlcNoWMPRy13nouV%2BdOXn7vGcJcwLKwbZmdN9YEWGn8%3D&reserved=0.

I was not proposing clicking on images! I was suggesting that each device has a connect button, but agree that's also misleading.
It might be best to move the connect button below the rows of the devices. The current connect button does not follow the users attention. Users typically look top to bottom unless their attention is drawn in a particular direction. The current dialog directs user attention to the images and then the user has to look above the images to find the button they are supposed to click.
This is how my attention was drawn in the dialog:

I clicked on the micro:bit picture automatically because the interaction was not clear. I did not see the green button as my attention was not drawn to it by the dialogue design.

Thank you peli! looks great


Cannot list all the extensions currently installed in cmd

VSCode Version: 1.9.0-insider
OS Version: Windows 10 Pro 64-bit

Steps to Reproduce:

run command code-insiders --list-extensions
it will only show up first line of extension and not all of currently installed extension

Closing as a duplicate of #17343


Please document precise steps to be taken after a user changes elasticsearch.yml file

ES v2.3.5
SG-SSL v<IP_ADDRESS>
SG v<IP_ADDRESS>
I reported issue #211 and it was resolved/closed as "works as designed." Fair enough. However I'm still having issues starting Elasticsearch when, in my case, I change the data path. SG recommended that I rerun sgadmin.sh, which I did to no avail. Can you please document the precise steps that a user needs to take when he/she changes elasticsearch.yml file, e.g., the data path?
After you change elasticsearch.yml, do this...

Rerun sgadmin.sh with pertinent parameters
What else???

Hi,
if you change the data path to point to a new directory, then the only thing you need to do is to rerun sgadmin, with the same parameters as before. Since all configuration settings are stored in a Search Guard index on your ES cluster, this index needs to get repopulated.  Let's say you stopped your cluster, changed the data directory, and started the cluster again. The just rerun sgadmin and everything should be fine.
If this does not work for you, please describe what happens when you rerun sgadmin, and post a log file with Search Guard on debug level, so we can reproduce the behaviour:
com.floragunn: DEBUG
(in: logging.yml)
Also, please update the SG version to at least <IP_ADDRESS>. Versions before that had a bug where the SG index was not found under certain conditions.

I did the following:

Stopped ES
Removed current SG v<IP_ADDRESS> plugin
Installed SG v<IP_ADDRESS>
Updated data path in elasticsearch.yml
Started ES, got log stating to run sgadmin.sh

[2016-10-05 15:27:50,256][INFO ][com.floragunn.searchguard.action.configupdate.TransportConfigUpdateAction] [ip-10-22-9-4] searchguard index does not exist yet, so no need to load config on node startup. Use sgadmin to initialize cluster

Issued sgadmin.sh, and got following exceptions

[2016-10-05 15:28:58,408][INFO ][cluster.metadata         ] [ip-10-22-x-x] [searchguard] creating index, cause [api], templates [], shards [1]/[0], mappings []
[2016-10-05 15:28:58,461][WARN ][indices.cluster          ] [ip-10-22-x-x] [[searchguard][0]] marking and sending shard failed due to [failed to create shard]
java.lang.NullPointerException
	at org.elasticsearch.index.shard.ShardPath.selectNewPathForShard(ShardPath.java:241)
	at org.elasticsearch.index.IndexService.createShard(IndexService.java:336)
	at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyInitializingShard(IndicesClusterStateService.java:601)
	at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyNewOrUpdatedShards(IndicesClusterStateService.java:501)
	at org.elasticsearch.indices.cluster.IndicesClusterStateService.clusterChanged(IndicesClusterStateService.java:166)
	at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:610)
	at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:772)
	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
[2016-10-05 15:28:58,465][WARN ][cluster.action.shard     ] [ip-10-22-x-x] [searchguard][0] received shard failed for target shard [[searchguard][0], node[69B9g_xHQL2KpeQLGgQxPg], [P], v[1], s[INITIALIZING], a[id=lDau69e_SMqHJZ0fvxXAKQ], unassigned_info[[reason=INDEX_CREATED], at[2016-10-05T15:28:58.410Z]]], indexUUID [gluSfkB4TB-Wa5D5yRlizQ], message [failed to create shard], failure [NullPointerException[null]]
java.lang.NullPointerException
	at org.elasticsearch.index.shard.ShardPath.selectNewPathForShard(ShardPath.java:241)
	at org.elasticsearch.index.IndexService.createShard(IndexService.java:336)
	at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyInitializingShard(IndicesClusterStateService.java:601)
	at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyNewOrUpdatedShards(IndicesClusterStateService.java:501)
	at org.elasticsearch.indices.cluster.IndicesClusterStateService.clusterChanged(IndicesClusterStateService.java:166)
	at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:610)
	at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:772)
	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Thanks for the logs, this should not happen, we're investigating.

Thank YOU for helping. I just wanted to add that if I comment out the path.data line in elasticsearch.yml, and stop/start ES, then run sgadmin.sh, it works.

You hit https://github.com/elastic/elasticsearch/pull/19554 i think

Close this issue because its very likely not a SG bug


Real Cool 35 can be added but then shows as unavailable

Can you provide logs with debugging turned on?

Hm...odd indeed. Let me know if anything else comes up.


Add options to set tracer tags

Coverage decreased (-0.002%) to 85.136% when pulling e49d9e31f0037f5a1f4ead36232644e19834e0d7 on tracer-tags into 1dfa107c54c118dc04693e2d737eddc296b82d53 on master.

Coverage decreased (-0.1%) to 85.036% when pulling 6c1a736b2ead5753388db50339857d038933b310 on tracer-tags into 1dfa107c54c118dc04693e2d737eddc296b82d53 on master.

Coverage increased (+0.08%) to 85.22% when pulling 776a4c9eec6dc4ad8b716a0dca5e99dbe6c14ac9 on tracer-tags into 1dfa107c54c118dc04693e2d737eddc296b82d53 on master.

couldn't test config package without that. It should've been public from the start.


Unhandled unsupported_file_format_error not correctly returned

TL;TR: ParserFactory::get_creator_function may throw, while Reader::parser_thread assumes it won't.
In certain circumstances, eg. a format has not been enabled, ParserFactory::get_creator_function throws exception from the parsing thread function and without satisfying the promise with the exception.
Exception is neither caught by the worker nor conveyed to the main thread .
Minimal example to reproduce the situation:
#include <osmium/io/reader.hpp>
#include <cstdio>
#include <exception>

int main(int argc, char* argv[])
{
    try
    {
        if (argc != 2) throw std::invalid_argument(".pbf missing");

        osmium::io::Reader r{argv[1]};
        auto b = r.read();
        return EXIT_SUCCESS;
    }
    catch (std::exception const& e)
    {
        std::puts("OK\n");
        std::puts(e.what());
    }
    return EXIT_FAILURE;
}

Run:
$ g++ -std=c++11 -I./libosmium/include -pthread test_libosmium.cpp
$ ./a.out ~/tmp/faroe-islands-latest.osm.pbf
terminate called after throwing an instance of 'osmium::unsupported_file_format_error'
  what():  Can not open file '/home/mloskot/tmp/faroe-islands-latest.osm.pbf' with type 'PBF'. No support for reading this format in this program.
Aborted (core dumped)

If the Reader::parser_thread is quick-patched w/ something along these lines:
diff --git a/include/osmium/io/reader.hpp b/include/osmium/io/reader.hpp
index c39eaaa6..5ab83555 100644
--- a/include/osmium/io/reader.hpp
+++ b/include/osmium/io/reader.hpp
@@ -133,10 +133,21 @@ namespace osmium {
                                       detail::future_buffer_queue_type& osmdata_queue,
                                       std::promise<osmium::io::Header>&& header_promise,
                                       osmium::io::detail::reader_options options) {
-                std::promise<osmium::io::Header> promise = std::move(header_promise);
-                const auto creator = detail::ParserFactory::instance().get_creator_function(file);
-                const auto parser = creator(input_queue, osmdata_queue, promise, options);
-                parser->parse();
+#ifdef ML_FIX
+                try {
+#endif
+                    std::promise<osmium::io::Header> promise = std::move(header_promise);
+                    const auto creator = detail::ParserFactory::instance().get_creator_function(file);
+                    const auto parser = creator(input_queue, osmdata_queue, promise, options);
+                    parser->parse();
+#ifdef ML_FIX
+                }
+                catch (...) {
+                    std::exception_ptr exception = std::current_exception();
+                    detail::add_to_queue(osmdata_queue, std::move(exception));
+                }
+                detail::add_end_of_data_to_queue(osmdata_queue);
+#endif
             }

 #ifndef _WIN32

Run, and the threads behave:
$ g++ -std=c++11 -I./libosmium/include -pthread -DML_FIX=1 test_libosmium.cpp
$ ./a.out ~/tmp/faroe-islands-latest.osm.pbf
OK

Can not open file '/home/mloskot/tmp/faroe-islands-latest.osm.pbf' with type 'PBF'. No support for reading this format in this program.

The crash was also reproduced on Windows 10 + VS2015.
Excuse: I've spent using libosmium just a bit for the very first time, I am missing a lot regarding its internal workings, so please excuse me if I'm mis/ab-using it

Thanks for the report. I can reproduce the problem.

@joto The 3188bcbd8ca62299f93c6b1e7ae68ffe0427bf28 fix works for me. Thanks!

Thank you. I'll merge it into master. I chose a different fix than what you did. Your fix would have worked, but (because of the threading) it could happen that the exception would not be delivered to the main program from the Reader constructor, but only later when reading from the file. To avoid this and make it easier for the user, I chose this way.

Cool!
Certainly, my fix was a prototype for explanatory purpose, with locality close to the bug itself.
Your fix, which I have looked at, is the proper one and takes bigger picture into account.


ImageSpeedometer doesnt change the speed

Hi!
I want to use the Imageview with the image that you put in the wiki:

And this is xml code that i use:
<com.github.anastr.speedviewlib.ImageSpeedometer
                        android:id="@+id/imageSpeedometer"
                        android:layout_width="300dp"
                        android:layout_height="wrap_content"
                        app:sv_image="@drawable/imagespeedometer"
                        app:sv_speedTextColor="@android:color/transparent"
                        app:sv_unitTextColor="@android:color/transparent"

                        />

And then I use this code in the activity:

ImageSpeedometer imageSpeedometer = (ImageSpeedometer) findViewById(R.id.imageSpeedometer);
        imageSpeedometer.speedTo(60);

But when I execute the app the speed doesnt change to 60.
Do you know why happen?
Thanks for all the work!!!!

how you can see that it doesn't change while you set sv_speedTextColor as transparent color !!
to see the change you have to add Indicator like app:sv_indicator="LineIndicator" or change speedTextColor to something visible.


Feature: Adds https://github.com/umdjs/umd/blob/master/commonjsStrict.js...

... for package distribution. Fixes: #19

We need to add tests for this change. Not sure if I did it right.


Number input with step="0.01" causes form validation false negative result for certain range (1.09-1.16)

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
NG 1.6 form validation concludes that a number input with step="0.01" is invalid when given a passing value in certain ranges. The range of numbers that cause false negative results for the step input is: 1.09-1.16
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
Reproduced at http://codepen.io/nsedley/pen/RKoYJb
The range of numbers to produce the issue is: 1.09-1.16
Step between 1.08 and 1.09 and note that the input and form is falsely marked invalid for 1.09
What is the expected behavior?
Inputting numbers 1.09-1.16 should not cause the NG form validation to mark the input/form as invalid.
What is the motivation / use case for changing the behavior?
To correct it to it's intended functionality.
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
Reproduced in current Chrome, Edge and Firefox for framework version Angular 1.6, https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js
Other information (e.g. stacktraces, related issues, suggestions how to fix)
Possible cause: https://docs.angularjs.org/guide/migration#migrate1.5to1.6-ng-directives-input[number]

Looks like this was fixed in the 1.6.2 build which is not what I was testing with. Closing issue.

Duplicate of https://github.com/angular/angular.js/issues/15504

Duplicate of #15504

Close issue!


Update Pages “home”

Automatically generated by Netlify CMS

👷 Deploy Preview for parsimony-dev processing.
🔨 Explore the source changes: 967edad5c3e949503b51381cd0b639eeb30e4866
🔍 Inspect the deploy log: https://app.netlify.com/sites/parsimony-dev/deploys/6188117894a1130007ffa643


kwin: unwrap executable name for resource name

Motivation for this change
Meant to fix #118650, but doesn't helps for some reason
app_id is fixed, but notifications still works incorrectly
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 139459 at 60679c15 run on aarch64-linux 1

37 packages skipped due to time constraints:

kdev-php
kdev-python
kdevelop-unwrapped
libsForQt5.plasma-desktop (libsForQt515.plasma-desktop ,plasma5Packages.plasma-desktop)
libsForQt512.kde-cli-tools
libsForQt512.kdeplasma-addons
libsForQt512.khotkeys
libsForQt512.kinfocenter
libsForQt512.kmenuedit
libsForQt512.krohnkite
...

15 packages built successfully:

libsForQt5.kde-cli-tools (libsForQt515.kde-cli-tools ,plasma5Packages.kde-cli-tools)
libsForQt5.kdeplasma-addons (libsForQt515.kdeplasma-addons ,plasma5Packages.kdeplasma-addons)
libsForQt5.khotkeys (libsForQt515.khotkeys ,plasma5Packages.khotkeys)
libsForQt5.kinfocenter (libsForQt515.kinfocenter ,plasma5Packages.kinfocenter)
libsForQt5.kmenuedit (libsForQt515.kmenuedit ,plasma5Packages.kmenuedit)
libsForQt5.krohnkite (libsForQt515.krohnkite ,plasma5Packages.krohnkite)
libsForQt5.kwin (libsForQt515.kwin ,plasma5Packages.kwin)
libsForQt5.kwin-dynamic-workspaces (libsForQt515.kwin-dynamic-workspaces ,plasma5Packages.kwin-dynamic-workspaces)
libsForQt5.kwin-tiling (libsForQt515.kwin-tiling ,plasma5Packages.kwin-tiling)
libsForQt5.parachute (libsForQt515.parachute ,plasma5Packages.parachute)
libsForQt5.plasma-browser-integration (libsForQt515.plasma-browser-integration ,plasma5Packages.plasma-browser-integration)
libsForQt5.plasma-disks (libsForQt515.plasma-disks ,plasma5Packages.plasma-disks)
libsForQt5.plasma-workspace (libsForQt515.plasma-workspace ,plasma5Packages.plasma-workspace)
libsForQt5.powerdevil (libsForQt515.powerdevil ,plasma5Packages.powerdevil)
libsForQt5.systemsettings (libsForQt515.systemsettings ,plasma5Packages.systemsettings)

@SuperSandro2000 whatever you are doing, whether manual or automatic, it is currently harmful for the completeness of git formated patches.


debugprint command doesn't work in python

I have:
vim.keymap.set("n", "<Leader>p", function()
    require('debugprint').debugprint( { above = true, variable = true } )
end)

Asks for the variable name but after pressing enter nothing happens and the debugprint is not added.

@Mte90 this does work, but you have to make sure you returning the value of the debugprint() invocation, and declaring the keymap using expr = true. See examples here: https://github.com/andrewferrier/debugprint.nvim#custom-keymappings-and-commands. I don't know of a better way to handle this right now, except maybe to provide a first-class way to override keymaps in the plugin config (see #44) - any feedback on this welcome.

You are right, in that way works.
Probably something that let's from the plugin setup to set the bindings will fix that issue and also simplify the mapping managements in the user configuration.

Agreed @Mte90 I'll work on that in issue #44. Thanks for the feedback, glad you fixed it!


Instrumentation

WIP

[ ] Mechanism for disabling the broadcast tree for all modes.
[ ] State-based AAE (no broadcast tree) graph with a line (total AAE) per node.
[ ] State-based AAE (with broadcast tree) graph with a line (total AAE + broadcast tree) per node.
[ ] Delta-based AAE (no broadcast tree) graph with a line (total AAE) per node.
[ ] Graph with one line total for all nodes with three lines: state AAE, state AAE + tree, delta AAE.


0.2.4: Moving related APIs

@JuliaRegistrator register()

Registration pull request created: JuliaRegistries/General/39232
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.4 -m "<description of version>" 2c0a355f3aed9f13dc8588e164f915701170aaf5
git push origin v0.2.4


Blank CSV file created - OutofBoundsException and unsupported/disabled operation

I am having some issues with tabula-java. When I run it on some PDFs, I get the error messages reproduced below. When attempting to output any results to a csv file, the file comes back empty. The files affected work well in the regular Tabula version with the browser based GUI, but I would prefer to use the command line version.
I generated a script from the gui based Tabula so the area coordinates are correct. Unfortunately, I do not fully understand the error messages for me to pinpoint what exactly is going wrong in the affected PDFs. Here is a link to the pdf I have been trying to use October 2013
and here is the bash script I have been trying with
#!/bin/bash

java -jar tabula-java.jar --no-spreadsheet -a 132.855,29.58,246.84,581.91 -o Test.csv -p 4 2013\ October.pdf

Here is the error produced by the program. I have not had luck using the debug switch or routine either.
Jun 13, 2016 4:50:44 PM org.apache.pdfbox.util.operator.pagedrawer.FillNonZeroRule process
WARNING: java.lang.ArrayIndexOutOfBoundsException: 40
java.lang.ArrayIndexOutOfBoundsException: 40
        at java.awt.geom.Path2D$Float$TxIterator.currentSegment(Unknown Source)
        at technology.tabula.ObjectExtractor.strokeOrFillPath(ObjectExtractor.java:226)
        at technology.tabula.ObjectExtractor.fillPath(ObjectExtractor.java:285)
        at org.apache.pdfbox.util.operator.pagedrawer.FillNonZeroRule.process(FillNonZeroRule.java:58)
        at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:557)
        at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:268)
        at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)
        at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)
        at technology.tabula.ObjectExtractor.drawPage(ObjectExtractor.java:153)
        at technology.tabula.ObjectExtractor.extractPage(ObjectExtractor.java:108)
        at technology.tabula.PageIterator.next(PageIterator.java:29)
        at technology.tabula.CommandLineApp.extractTables(CommandLineApp.java:142)
        at technology.tabula.CommandLineApp.main(CommandLineApp.java:60)

Jun 13, 2016 4:50:45 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: BDC
Jun 13, 2016 4:50:45 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: i
Jun 13, 2016 4:50:45 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: EMC
Exception in thread "main" java.lang.UnsupportedOperationException
        at technology.tabula.Ruling.getPosition(Ruling.java:64)
        at technology.tabula.Ruling.collapseOrientedRulings(Ruling.java:413)
        at technology.tabula.Ruling.collapseOrientedRulings(Ruling.java:394)
        at technology.tabula.Page.getRulings(Page.java:175)
        at technology.tabula.extractors.SpreadsheetExtractionAlgorithm.extract(SpreadsheetExtractionAlgorithm.java:86)
        at technology.tabula.CommandLineApp.extractTables(CommandLineApp.java:172)
        at technology.tabula.CommandLineApp.main(CommandLineApp.java:60)

As an update to this post, the problematic pdf file seems to be working with the JRuby implementation of tabula-extractor. Using the same area coordinates I am able to get a csv file with the data.

This looks PDFBox-related, no? I'm assigning @jazzido , but I worry this may be WONTFIX for now, unless PDFBox provides a point release that fixes this without changing other functionality...

I have the same problem to extract the table from a pdf, strangely the web app correctly recognize the table but cmd version (with and without area) return me this error:
command
sudo /var/www/prove_alfredo/tesseract/vendor/oracle-java/jdk1.8.0_92/bin/java -jar /var/www/prove_alfredo/tesseract/vendor/tabula-java/lib/jars/tabula-0.9.0-jar-with-dependencies.jar -g -p all -a<PHONE_NUMBER>1208497,36.832702560424806,757.8607587432862,556.2110134124756 -o /var/www/prove_alfredo/tesseract/uploaded_files/cvs0.cvs /var/www/prove_alfredo/tesseract/uploaded_files/HLG-120H-C_DS_001_p1.pdf
result
Exception in thread "main" java.lang.UnsupportedOperationException
at technology.tabula.Ruling.getPosition(Ruling.java:64)
at technology.tabula.Ruling.collapseOrientedRulings(Ruling.java:413)
at technology.tabula.Ruling.collapseOrientedRulings(Ruling.java:394)
at technology.tabula.Page.getRulings(Page.java:175)
at technology.tabula.Page.getArea(Page.java:65)
at technology.tabula.CommandLineApp.extractTables(CommandLineApp.java:145)
at technology.tabula.CommandLineApp.main(CommandLineApp.java:60)

To revisit this, would the problem be PDFBox related if the web app works and the JRuby implementation works but the pure java implementation for the command line doesn't. Don't they all share the same java engine for the extraction?


Allow for configurable excluded directories.

Sometimes in RPM's you need to exclude directories from the file
lists.  Before it was a hardcoded list of 3 directories.  This
allows you to specify directories via a new command line option.

Similar to other test, ran on
NAME="openSUSE Leap"
VERSION="42.2"
ID=opensuse
ID_LIKE="suse"
VERSION_ID="42.2"
PRETTY_NAME="openSUSE Leap 42.2"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:42.2"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

But with some slightly different commands
> mkdir foo && cd foo && mkdir tmp && mkdir -p etc/init.d && echo "stuff" > tmp/foo && echo '#!/bin/sh' > etc/init.d/foo && echo 'echo "hello world"' >> etc/init.d/foo ; mkdir -p usr/bin ; echo '#!/bin/sh' > usr/bin/foo.sh ; echo 'echo hello world' >> usr/bin/foo.sh
> ../epm.erl -f -t rpm -n test -v 1.1.0 -a x86_64 tmp etc usr
> rpm -qlp test-1.1.0-1.x86_64.rpm
/etc/init.d/foo
/tmp/foo
/usr/bin
/usr/bin/foo.sh

Notice /usr/bin is in the list and probably shouldn't be as that's a common shared directory.  So with this patch
> mkdir foo && cd foo && mkdir tmp && mkdir -p etc/init.d && echo "stuff" > tmp/foo && echo '#!/bin/sh' > etc/init.d/foo && echo 'echo "hello world"' >> etc/init.d/foo ; mkdir -p usr/bin ; echo '#!/bin/sh' > usr/bin/foo.sh ; echo 'echo hello world' >> usr/bin/foo.sh
> ../epm.erl -f -t rpm -n test -v 1.1.0 -a x86_64 --exclude-dir tmp --exclude-dir usr --exclude-dir usr/bin --exclude-dir etc --exclude-dir etc/init.d tmp etc usr
> > rpm -qlp test-1.1.0-1.x86_64.rpm
/etc/init.d/foo
/tmp/foo
/usr/bin/foo.sh

Common directories have been excluded.  The default is to use the hardcoded list you had before, so it should behave the same if you don't include any '--exclude-dir' args.


Implements SystemStatus property.

Replaces #156.
This adds a SystemStatus property which functions similarly to VehicleMode, in that it is a light wrapper around a string (really an enum).
This is a breaking change with earlier rc's in that it used to be a number from mavutil, and is no longer.

@tcr3dr Looks good. I made a very minor change so that the example code reads vehicle.system_state.state - slightly prettier than printing ``vehicle.system_state`