Escape in terminal causes stack overflow

Happens regardless of shell, I think it's an infinite loop caused by https://github.com/xtermjs/xterm.js/pull/3222

Doesn't happen on Remote - WSL, probably just Windows/conpty

Doesn't happen in xterm.js demo under Windows

It's caused by "terminal.integrated.localEchoLatencyThreshold": 0, type ahead is emitting device request sequences which caused xterm.js to fire data events. FYI @connor4312

Repro on Windows:

Set "terminal.integrated.localEchoLatencyThreshold": 0
Open a terminal
Toggle escape sequence logging command
Open devtools
Press escape in terminal

You should see a lot of recursive parsing/sending data events, eventually hitting a stack overflow

@Tyriar I'm still seeing it, should the change land in VS Code already?

@rebornix just figured out the root cause for several of my remaining March issues with help from @meganrogge and @TylerLeonhardt. Fix incoming tomorrow

Upstream fix: https://github.com/xtermjs/xterm.js/pull/3266


[cxx-interop] Ban ObjCBool from being substituted into C++ templates

This fixes a compiler crash when calling a templated C++ function with a parameter of type ObjCBool from Swift. The compiler now emits an error for this.
Previously the following would happen:

Swift starts to emit SILGen for a call expression takeTAsConstRef(ObjCBool(true)).
takeTAsConstRef is a templated C++ function, so Swift asks Clang to instantiate a takeTAsConstRef with a built-in Obj-C boolean type.
Swift gets an instantiated function template back that looks like this: void takeTAsConstRef(_Bool t) { ... }.
Swift's ClangImporter begins to import that instantiated function.
Since the parameter type is not spelled as BOOL, the parameter is not imported as ObjCBool. Instead, it's imported as regular Swift Bool.
Swift realizes that the types don't match (ObjCBool vs Bool), tries to apply any of the known implicit conversions, fails to do so, crashes.

rdar://130424969

@swift-ci please test

@swift-ci please test

If you change ctx.ObjCBuiltinBoolTy to ctx.getBOOLType(), do these templates start importing correctly? I think that might help explain why ObjCBool isn't round-tripping.

That's a good question. I initially tried that, and found out that ctx.getBOOLType() returns nullptr until Clang's Sema processes an Obj-C BOOL literal, and then does a name lookup for BOOL. I tried duplicating that logic in this patch, but unfortunately the name lookup won't find BOOL unless objc.h is transitively included in the C++ module which is being processed.


Would you mind provide  vs2013 dependency?

thanks

you can follow this: https://github.com/initialneil/caffe/tree/windows


when will bii-server take place here?

topic describe all :)

Hi timo, we have certainly not forgotten about this, it was planned for 1st July, keep tuned!

will this enable us to host an own server with private blocks? Can't wait for it

Yes!

please hurry guys! :-)

Toc Toc! Its here! ;)

Thanks!

YES!! Thanks!

Nice. After hours trying to setup the bii server I finally got him running! Unfortunately something is still wrong with the authentication... nja I will investigate tomorrow!^^ Thanks for make it open source.

@SrTobi if you found some wrong step in readme or missing information feel free to open a pull request! I know the readme is not perfect. If I can help you with the auth write me! I'm really glad you are using biicode open source server :D

I there a way to make a block private?
And is there a webinterface like biicode.com?

No, web and webapi are not released as open source by now.
About making private blocks, well, its not allowed from client and admin
script from server only allows user creation. For handle permissions its
necessary write new admin scripts or develop a new feature in client and
server.
El 30/6/2015 4:43 p. m., "SrTobi"<EMAIL_ADDRESS>escribió:

I there a way to make a block private?
And is there a webinterface like biicode.com?
—
Reply to this email directly or view it on GitHub
https://github.com/biicode/bii-server/issues/1#issuecomment-117212366.


Be confused about ctx mean

Hi @lvapeab
I am reading your code line by line, and now be some confused with the ctx mean. in here
Regards!

Hi,
if you recall  (see the expression before Eq. 7 from this paper: https://arxiv.org/pdf/1502.03044.pdf), the decoder hidden state is initialized according to  a MLP, which takes a representation of the source sentence. Here, as representation of the source sentence, we take the mean of the states of the BRNN encoder .
Of course, there are other options. One could use, for example, the last hidden state of the BLSTM as input to the MLP. I think it also could work well, but I haven't try it yet :)


React 16 peerDependencies fix

Is there anything holding this back from being merged and released?

 I see that the last commit on master was a long time ago.

@arunoda would it be possible for you to merge this PR ? Thanks !

+1

We forked, fixed, and published this package as @storybook/react-komposer if you're interested in using it. @Coobaha @loanlaux @bogas04 @PierreAndreis

I use @storybook/mantra-core in a meteor v1.6.1 app, with<EMAIL_ADDRESS>But a have a problem with the composeWithTracker function. This function have been taken off react-komposer@2, used by storybook, but is still declared in @storybook/mantra-core/dist/index. So, I have a question. How could I send data from my containers to my components? Need help please.


Central controller doesn't establish ip tunnel

Hi, this is my second issue and hopefully the first to get an answer.
Once I have successfully installed the ICN SD-EWAN solution on two different virtual machines, I am trying to perform a use case on one machine acting as a hub and the other acting as an egde node. To implement the following scheme I have used the central controller solution.
IP hub - <IP_ADDRESS>
IP edge - <IP_ADDRESS>
First, i created an overlay.

Next, I made the proposal aggregation in the overlay.

Following this structure, I made the iprange to serve ips to the edge nodes. (Subnet <IP_ADDRESS>/24)

Finally, i registrered the hub with kubeconfig encode in base64.

And the edge node too.

Ok, so far so good. The important issue is when I created the hub-device connection. It seems that the edge node has a virtual ip "<IP_ADDRESS>".

The edge status shows the success of the process.

But when I look at the subnets in the edge node cnf... surprise! The subnet doesnt not exists.

Can you explain me what is the error I am making or if this software has some bugs?
You can contact with me at<EMAIL_ADDRESS>I hope you will give me an answer as soon as possible.
Best regards.
Raúl.

I'm also interested in this issue because I also tried to run a similar use case and I don't achieved the expected results, the configured subnets are not actually created on the edge node.

net2 is used as the underlay network for the IPsec tunnel. Please check the connectivity through net2 between Hub CNF and Edge CNF first.

Hi, this is my second issue and hopefully the first to get an answer.
Once I have successfully installed the ICN SD-EWAN solution on two different virtual machines, I am trying to perform a use case on one machine acting as a hub and the other acting as an egde node. To implement the following scheme I have used the central controller solution.
IP hub - <IP_ADDRESS> IP edge - <IP_ADDRESS>
First, i created an overlay.

Next, I made the proposal aggregation in the overlay.

Following this structure, I made the iprange to serve ips to the edge nodes. (Subnet <IP_ADDRESS>/24)

Finally, i registrered the hub with kubeconfig encode in base64.

And the edge node too.

Ok, so far so good. The important issue is when I created the hub-device connection. It seems that the edge node has a virtual ip "<IP_ADDRESS>".

The edge status shows the success of the process.

But when I look at the subnets in the edge node cnf... surprise! The subnet doesnt not exists.

Can you explain me what is the error I am making or if this software has some bugs?
You can contact with me at<EMAIL_ADDRESS>I hope you will give me an answer as soon as possible. Best regards. Raúl.

Hi Raúl, I am wondering if these two public ip address
IP hub - <IP_ADDRESS> IP edge - <IP_ADDRESS>
are the public ip address of your vm. Our solution attempt to establish an ipsec tunnel between the SDEWAN CNFs reside on your machine, so the public ip address used during hub/edge registration shall be the one within the cnf, the ip address of net2 interface as @Airren mentioned.  So please, check the network connection between the two SDEWAN CNFs and re-register with the correct ips.

net2 is used as the underlay network for the IPsec tunnel. Please check the connectivity through net2 between Hub CNF and Edge CNF first.

Hi Raúl, I am wondering if these two public ip address IP hub - <IP_ADDRESS> IP edge - <IP_ADDRESS> are the public ip address of your vm. Our solution attempt to establish an ipsec tunnel between the SDEWAN CNFs reside on your machine, so the public ip address used during hub/edge registration shall be the one within the cnf, the ip address of net2 interface as @Airren mentioned. So please, check the network connection between the two SDEWAN CNFs and re-register with the correct ips.

Hi @Ruoyu-y and @Airren, thank you so much for your answers.
In fact, I didn't have connection between CNF through net2.
Now, the schema is this:
Hub -    <IP_ADDRESS> (PIP) - <IP_ADDRESS> (net2)

Edge1 - <IP_ADDRESS> (PIP) - <IP_ADDRESS> (net2)

The connection between both CNFs is now available, so I can ping it successfully.

I also re-registered the hub and edge1 with their respective acquired IPs (I had problems with registering both deployments using only the CNF IP, so I added both the PIP and the one generated by net2 on the CNF).

Once the connection between the hub and edge1 has been created, the crds proposal and IpsecHost (in the case of the edge) and IpsecSite (in the case of the Hub) are successfully created and appear to have successful configurations.
HUB
apiVersion: batch.sdewan.akraino.org/v1alpha1
kind: IpsecSite
metadata:
  creationTimestamp: "2022-11-17T12:52:20Z"
  finalizers:
  - ipsec.site.finalizers.sdewan.akraino.org
  generation: 1
  labels:
    emco/deployment-id:<PHONE_NUMBER>566571836-hub1-app
    sdewanPurpose: base
    targetCluster: Hub.hub1
  name: hub1device2
  namespace: default
  resourceVersion: "28795"
  uid: e1364ee2-2a1e-40e0-911b-04873784ec83
spec:
  authentication_method: pubkey
  connections:
  - conn_type: tunnel
    crypto_proposal:
    - proposal1
    local_subnet: <IP_ADDRESS>/0
    local_updown: /etc/updown
    mark: "30"
    mode: start
    name: Conndevice2_192168101
    remote_sourceip: <IP_ADDRESS>
  crypto_proposal:
  - proposal1
  force_crypto_proposal: "0"
  local_identifier: CN=hub-hub1-cert
  local_private_cert: <local_private_cert>
  local_public_cert: <local_public_cert>
  remote: '%any'
  remote_identifier: CN=device-device2-cert
  shared_ca: <shared_ca>
  type: VTI-based
status:
  appliedGeneration: 1
  appliedTime: "2022-11-17T12:52:21Z"
  state: In Sync

EDGE1
apiVersion: v1
items:
- apiVersion: batch.sdewan.akraino.org/v1alpha1
  kind: IpsecHost
  metadata:
    creationTimestamp: "2022-11-17T12:52:21Z"
    finalizers:
    - ipsec.host.finalizers.sdewan.akraino.org
    generation: 2
    labels:
      emco/deployment-id:<PHONE_NUMBER>058164639-device2-app
      sdewanPurpose: base
      targetCluster: Device.device2
    name: device2hub1
    namespace: default
    resourceVersion: "288456"
    uid: e771a9c2-f62a-420d-bff3-1c73a9c7edfc
  spec:
    authentication_method: pubkey
    connections:
    - conn_type: tunnel
      crypto_proposal:
      - proposal1
      local_sourceip: '%config'
      local_updown: /etc/updown_oip
      mode: start
      name: Connhub1_192168250174
      remote_subnet: <IP_ADDRESS>/0
    crypto_proposal:
    - proposal1
    force_crypto_proposal: "0"
    local_identifier: CN=device-device2-cert
    local_private_cert: <local_private_cert>
    remote: <IP_ADDRESS>
    remote_identifier: CN=hub-hub1-cert
    shared_ca: <shared_ca>
    type: policy-based
  status:
    appliedGeneration: 2
    appliedTime: "2022-11-17T12:52:22Z"
    state: In Sync
- apiVersion: batch.sdewan.akraino.org/v1alpha1
  kind: IpsecHost
  metadata:
    annotations:
    creationTimestamp: "2022-11-17T12:03:52Z"
    generation: 1
    labels:
      sdewanPurpose: device2
    name: ipsechost
    namespace: default
    resourceVersion: "278299"
    uid: 3b01abba-95a1-43f7-9fe1-c56648b18340
  spec:
    authentication_method: psk
    connections:
    - conn_type: tunnel
      crypto_proposal:
      - ipsecproposal
      local_sourceip: <IP_ADDRESS>
      mode: start
      name: connA
      remote_subnet: <IP_ADDRESS>/24,$<IP_ADDRESS>/32
    crypto_proposal:
    - ipsecproposal
    force_crypto_proposal: "0"
    local_identifier: <IP_ADDRESS>
    name: edgeA
    pre_shared_key: test_key
    remote: <IP_ADDRESS>
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

Despite all this, edge1 still does not add the new network interface correctly.
At this point, I don't know what the problem could be. I hope you can help me.
Best wishes.
Raúl.

@Ruoyu-y Exactly, when we try to register the edge and the hub with only the cnf ips, central-controller doesn't encounter that ips. However, with the public ips this error disappear.

@Ruoyu-y Exactly, when we try to register the edge and the hub with only the cnf ips, central-controller doesn't encounter that ips. However, with the public ips this error disappear.

Can you help paste the error here? Actually we do a cluster connection test before we finished the registration, so the error should be related to that.

@Ruoyu-y

I think the problem is that it doesn't find the IP of the CNF because the IP is not visible to the local environment. Should the scc also get a net2 IP?

@rreisim Can you please go inside your cnf container, and check the iptables there. There should be some DNAT rules to redirect the traffic to api server. So that scc could use this ip address to access the api server. Otherwise, there might be something missing in your cnf helm chart.
By the way, have you add something routing rules in your host vm to route the scc request into the cnf container? Something like:
ip r add <IP_ADDRESS>/24 dev <cnf-interface-name>

@Ruoyu-y Ok thanks for your contribution, by adding the following routing in VM host I manage to add hub and edge with their respective Ips <IP_ADDRESS>x.
ip r add <IP_ADDRESS>/24 via <IP_ADDRESS> (cnf tunl0 ip)

However, by repeating the above steps with the CNF ips, the subnet is not created on the edge node. I will try to find a solution and will reply to this thread with my progress next week. Again, thanks for the help.

Hello again.
After several attempts, the central controller is still not working properly. I have the same problem as when I started with this issue. Regardless if the configuration of the public ips are ok, I guess that when the central controller creates the "ipsecsite crd" on the edge node and the "ipsechost crd" on the hub node, if both have communication, the new subnet should be created in the cnf of the egde node.
By the way, I have checked all the configuration and now, I can say that I haven't found any more errors in the configuration. So, I really don't know what is the main problem here, but the subnet is not created when I apply the configuration you can see in first message.
So, can you show me any configuration or deployment you have ready or any PoC you have done before with or without central-controller? Maybe an example can be relevant to finish this issue.
Greetings,
Raúl.

Okay. Can you try these simplified configurations? These are working on our local environment.
This is the one for the hub.
apiVersion: batch.sdewan.akraino.org/v1alpha1
kind: IpsecSite
metadata:
  labels:
    emco/deployment-id:<PHONE_NUMBER>98745066-huba-app
    sdewanPurpose: base
    targetCluster: Hub.huba
  name: hubaedge1
  namespace: default
spec:
  authentication_method: psk
  connections:
  - conn_type: tunnel
    crypto_proposal:
    - proposal1
    - proposal2
    local_subnet: <IP_ADDRESS>/0
    local_updown: /etc/updown
    mark: "30"
    mode: start
    name: Connedge1_19216905
    remote_sourceip: <IP_ADDRESS>
  crypto_proposal:
  - proposal1
  - proposal2
  force_crypto_proposal: "0"
  local_identifier: CN=hub-huba-cert
  pre_shared_key: "1234"
  remote: '%any'
  remote_identifier: CN=device-edge-1-cert
  type: VTI-based

This is the one on the edge:
apiVersion: batch.sdewan.akraino.org/v1alpha1
kind: IpsecHost
metadata:
  labels:
    emco/deployment-id:<PHONE_NUMBER>829001716-edge-1-app
    sdewanPurpose: base
    targetCluster: Device.edge-1
  name: edge1huba
  namespace: default
spec:
  authentication_method: psk
  connections:
  - conn_type: tunnel
    crypto_proposal:
    - proposal1
    - proposal2
    local_sourceip: '%config'
    local_updown: /etc/updown_oip
    mode: start
    name: Connhuba_10107039
    remote_subnet: <IP_ADDRESS>/0
  crypto_proposal:
  - proposal1
  - proposal2
  force_crypto_proposal: "1"
  local_identifier: CN=device-edge-1-cert
  pre_shared_key: "1234"
  remote: <the-ip-address-of-the-hub-cnf> //maybe <IP_ADDRESS>
  remote_identifier: CN=hub-huba-cert
  type: policy-based

Once these configurations are applied, you could the ipsec tunnel up like this:
/ $ sudo ipsec statusall
Status of IKE charon daemon (strongSwan 5.9.2, Linux 5.4.0-42-generic, x86_64):
  uptime: 12 minutes, since Nov 28 10:40:42 2022
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
  loaded plugins: charon aes des rc2 sha2 sha1 md5 random nonce x509 revocation constraints pubkey pkcs1 pgp dnskey sshkey pem af-alg fips-prf gmp xcbc hmac attr kernel-netlink resolve socket-default connmark stroke updown xauth-generic
Listening IP addresses:
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
Connections:
edge1huba-Connhuba_10107039:  %any...<IP_ADDRESS>  IKEv2, dpddelay=30s
edge1huba-Connhuba_10107039:   local:  [CN=device-edge-1-cert] uses pre-shared key authentication
edge1huba-Connhuba_10107039:   remote: [CN=hub-huba-cert] uses pre-shared key authentication
edge1huba-Connhuba_10107039:   child:  dynamic === <IP_ADDRESS>/0 TUNNEL, dpdaction=restart
Security Associations (1 up, 0 connecting):
edge1huba-Connhuba_10107039[1]: ESTABLISHED 12 minutes ago, <IP_ADDRESS>[CN=device-edge-1-cert]...<IP_ADDRESS>[CN=hub-huba-cert]
edge1huba-Connhuba_10107039[1]: IKEv2 SPIs: 646ee384b2479366_i*<PHONE_NUMBER>83fc2d_r, pre-shared key reauthentication in 2 hours
edge1huba-Connhuba_10107039[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_4096
edge1huba-Connhuba_10107039{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c8488aa4_i ccfb127e_o
edge1huba-Connhuba_10107039{1}:  AES_CBC_256/HMAC_SHA2_256_128, 0 bytes_i, 0 bytes_o, rekeying in 34 minutes
edge1huba-Connhuba_10107039{1}:   <IP_ADDRESS>/32 === <IP_ADDRESS>/0

And you could see the virtual ip address attached as below:
/ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip <IP_ADDRESS> brd <IP_ADDRESS>
3: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip <IP_ADDRESS> brd <IP_ADDRESS>
5: eth0@if92: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default
    link/ether 1a:65:1b:8a:55:a9 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
7: net2@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default
    link/ether 00:00:00:f3:17:6f brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global net2
       valid_lft forever preferred_lft forever
    inet <IP_ADDRESS>/32 scope global net2
       valid_lft forever preferred_lft forever
    inet6 fe80::200:ff:fef3:176f/64 scope link
       valid_lft forever preferred_lft forever

Please let me know if this works on your side.

Hello @Ruoyu-y
It works! The configuration appears correctly in net2 in each edge nodes.
bash-5.1$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip <IP_ADDRESS> brd <IP_ADDRESS>
4: eth0@if333: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
    link/ether 92:1c:18:13:5b:2c brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever
6: net2@if334: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default
    link/ether 00:00:00:3d:9c:dd brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global net2
       valid_lft forever preferred_lft forever
    inet <IP_ADDRESS>/32 scope global net2
       valid_lft forever preferred_lft forever
    inet6 fe80::200:ff:fe3d:9cdd/64 scope link
       valid_lft forever preferred_lft forever
8: net0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default
    link/ether 00:00:00:93:14:d0 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global net0
       valid_lft forever preferred_lft forever
    inet6 fe80::200:ff:fe93:14d0/64 scope link
       valid_lft forever preferred_lft forever
10: net1@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default
    link/ether f2:a3:4c:97:80:73 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/18 brd <IP_ADDRESS> scope global net1
       valid_lft forever preferred_lft forever

For my part the issue is solved, thank you very much for your help.
Now, I am having some problems when applying the SNAT firewall because the traffic is not redirected well. Attached is the deployment used.
apiVersion: batch.sdewan.akraino.org/v1alpha1
kind: FirewallSNAT
metadata:
  name: firewallsnat
  namespace: default
  labels:
    sdewanPurpose: base
    targetCluster: Device.device2
spec:
  src_ip: <IP_ADDRESS>/24 # subnet net0
  src_dip: <IP_ADDRESS> # virtual IP edge-a
  dest: pnetwork
  dest_ip: <IP_ADDRESS> # net2 ip hub
  proto: all
  target: SNAT

Well, @Ruoyu-y.

I have tried with different configurations, concluding that both SNAT and DNAT configured work correctly, but I find an error when I try to perform the final test.
The configuration I have used on edge-a is:
apiVersion: batch.sdewan.akraino.org/v1alpha1
kind: CNFNAT
metadata:
  labels:
    sdewanPurpose: base
    targetCluster: Device.device2
  name: cnfsnat
  namespace: default
spec:
  src_ip: <IP_ADDRESS>/24 # the original source ip
  src_dip: <IP_ADDRESS> # SNAT result
  dest: net2
  dest_ip: <IP_ADDRESS> # CNF-HUB net2 IP
  index: "0"
  target: SNAT

and edge-b:
apiVersion: batch.sdewan.akraino.org/v1alpha1
kind: CNFService
metadata:
  name: cnfservice
  namespace: default
  labels:
    sdewanPurpose: base
    targetCluster: Device.device3
spec:
    fullname: my-http-service.default.svc.cluster.local
    port: "80"
    dport: "80"

I think the error might be related to how the hub intercepts packets and replicates them to edge-b. Sorry for the inconvenience.

@rreisim Can you tell me the topology of your environment? And the last configuration of that cnfservice, are you trying to access the service through domain name?

Hello @Ruoyu-y. I attached you the general topology of my environment. Regarding the cnfservice, in general terms, works correctly for a first approximation.
So, my "APP1: HTTPBIN" request would be:
curl -X GET "http://<IP_ADDRESS>/ip" -H "accept: application/json"

And the expected response from "APP2: HTBBIN" would be:
{
  "origin": "<IP_ADDRESS>"
}

@rreisim The topology looks fine to me. I think there's no need to add the cnfservice in this case. The SNAT/DNATs are enough.
Regarding your issue, please first check that the virtual ips can get connected from both sides using the IPSec tunnel. Try ping 192.168.10.x on both sides. You can also use such command in the CNF container to check the ipsec status: sudo ipsec statusall
And i double checked the configuration you used for SNAT, are you trying to change the src ip to <IP_ADDRESS> when the packet is going to <IP_ADDRESS>? My thinking is that you should have the snat take place when the packet is going to <IP_ADDRESS> instead of <IP_ADDRESS>.
Please correct me if anything wrong.

Hi @Ruoyu-y thanks for be persisent with this issue.
Unfortunately I haven't connection between edge nodes. I don't receive response after pinging between them. The  sudo ipsec statusall is the next:
Hub:
bash-5.1$ sudo ipsec statusall
Status of IKE charon daemon (strongSwan 5.9.2, Linux 5.15.0-46-generic, x86_64):
  uptime: 27 minutes, since Dec 07 10:54:23 2022
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 51
  loaded plugins: charon aes des rc2 sha2 sha1 md5 random nonce x509 revocation constraints pubkey pkcs1 pgp dnskey sshkey pem af-alg fips-prf gmp xcbc hmac attr kernel-netlink resolve socket-default connmark stroke updown xauth-generic
Virtual IP pools (size/online/offline):
  <IP_ADDRESS>: 1/1/0
  <IP_ADDRESS>: 1/1/0
Listening IP addresses:
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
Connections:
hub1device2-Conndevice2_192168101:  %any...%any  IKEv2, dpddelay=30s
hub1device2-Conndevice2_192168101:   local:  [CN=hub-hub1-cert] uses pre-shared key authentication
hub1device2-Conndevice2_192168101:   remote: [CN=device-device2-cert] uses pre-shared key authentication
hub1device2-Conndevice2_192168101:   child:  <IP_ADDRESS>/0 === dynamic TUNNEL, dpdaction=restart
hub1device3-Conndevice3_192168102:  %any...%any  IKEv2, dpddelay=30s
hub1device3-Conndevice3_192168102:   local:  [CN=hub-hub1-cert] uses pre-shared key authentication
hub1device3-Conndevice3_192168102:   remote: [CN=device-device3-cert] uses pre-shared key authentication
hub1device3-Conndevice3_192168102:   child:  <IP_ADDRESS>/0 === dynamic TUNNEL, dpdaction=restart
Security Associations (2 up, 0 connecting):
hub1device3-Conndevice3_192168102[26]: ESTABLISHED 10 minutes ago, <IP_ADDRESS>[CN=hub-hub1-cert]...<IP_ADDRESS>[CN=device-device3-cert]
hub1device3-Conndevice3_192168102[26]: IKEv2 SPIs: 5588b29a6cd6dc67_i 50ccfbf6a20edbf3_r*, pre-shared key reauthentication in 2 hours
hub1device3-Conndevice3_192168102[26]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_4096
hub1device3-Conndevice3_192168102[26]: Tasks active: IKE_DPD
hub1device3-Conndevice3_192168102{33}:  INSTALLED, TUNNEL, reqid 2, ESP SPIs: cf383ef2_i c269da44_o
hub1device3-Conndevice3_192168102{33}:  AES_CBC_256/HMAC_SHA2_256_128, 0 bytes_i, 0 bytes_o, rekeying in 33 minutes
hub1device3-Conndevice3_192168102{33}:   <IP_ADDRESS>/0 === <IP_ADDRESS>/32
hub1device3-Conndevice3_192168102{34}:  INSTALLED, TUNNEL, reqid 2, ESP SPIs: c6af21e9_i ca3eaf32_o
hub1device3-Conndevice3_192168102{34}:  AES_CBC_256/HMAC_SHA2_256_128/MODP_4096, 0 bytes_i, 0 bytes_o, rekeying in 33 minutes
hub1device3-Conndevice3_192168102{34}:   <IP_ADDRESS>/0 === <IP_ADDRESS>/32
hub1device2-Conndevice2_192168101[25]: ESTABLISHED 11 minutes ago, <IP_ADDRESS>[CN=hub-hub1-cert]...<IP_ADDRESS>[CN=device-device2-cert]
hub1device2-Conndevice2_192168101[25]: IKEv2 SPIs: 37bd81960b1707ed_i 329b06929a2fbb3f_r*, pre-shared key reauthentication in 2 hours
hub1device2-Conndevice2_192168101[25]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_4096
hub1device2-Conndevice2_192168101{31}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: cef38a81_i c0edb3ba_o
hub1device2-Conndevice2_192168101{31}:  AES_CBC_256/HMAC_SHA2_256_128, 0 bytes_i, 0 bytes_o, rekeying in 32 minutes
hub1device2-Conndevice2_192168101{31}:   <IP_ADDRESS>/0 === <IP_ADDRESS>/32
hub1device2-Conndevice2_192168101{32}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c6e2c209_i c048cbdf_o
hub1device2-Conndevice2_192168101{32}:  AES_CBC_256/HMAC_SHA2_256_128/MODP_4096, 0 bytes_i, 0 bytes_o, rekeying in 31 minutes
hub1device2-Conndevice2_192168101{32}:   <IP_ADDRESS>/0 === <IP_ADDRESS>/32

edge-a:
bash-5.1$ sudo ipsec statusall
Status of IKE charon daemon (strongSwan 5.9.2, Linux 5.15.0-56-generic, x86_64):
  uptime: 11 minutes, since Dec 07 11:10:39 2022
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
  loaded plugins: charon aes des rc2 sha2 sha1 md5 random nonce x509 revocation constraints pubkey pkcs1 pgp dnskey sshkey pem af-alg fips-prf gmp xcbc hmac attr kernel-netlink resolve socket-default connmark stroke updown xauth-generic
Listening IP addresses:
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
Connections:
device2hub1-Connhub1_10107040:  %any...<IP_ADDRESS>  IKEv2, dpddelay=30s
device2hub1-Connhub1_10107040:   local:  [CN=device-device2-cert] uses pre-shared key authentication
device2hub1-Connhub1_10107040:   remote: [CN=hub-hub1-cert] uses pre-shared key authentication
device2hub1-Connhub1_10107040:   child:  dynamic === <IP_ADDRESS>/0 TUNNEL, dpdaction=restart
Security Associations (1 up, 0 connecting):
device2hub1-Connhub1_10107040[1]: ESTABLISHED 11 minutes ago, <IP_ADDRESS>[CN=device-device2-cert]...<IP_ADDRESS>[CN=hub-hub1-cert]
device2hub1-Connhub1_10107040[1]: IKEv2 SPIs: 37bd81960b1707ed_i* 329b06929a2fbb3f_r, pre-shared key reauthentication in 2 hours
device2hub1-Connhub1_10107040[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_4096
device2hub1-Connhub1_10107040{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c0edb3ba_i cef38a81_o
device2hub1-Connhub1_10107040{1}:  AES_CBC_256/HMAC_SHA2_256_128, 0 bytes_i, 0 bytes_o, rekeying in 35 minutes
device2hub1-Connhub1_10107040{1}:   <IP_ADDRESS>/32 === <IP_ADDRESS>/0
device2hub1-Connhub1_10107040{2}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c048cbdf_i c6e2c209_o
device2hub1-Connhub1_10107040{2}:  AES_CBC_256/HMAC_SHA2_256_128/MODP_4096, 0 bytes_i, 0 bytes_o, rekeying in 33 minutes
device2hub1-Connhub1_10107040{2}:   <IP_ADDRESS>/32 === <IP_ADDRESS>/0

edge-b:
bash-5.1$ sudo ipsec statusall
Status of IKE charon daemon (strongSwan 5.9.2, Linux 5.15.0-41-generic, x86_64):
  uptime: 11 minutes, since Dec 07 11:11:15 2022
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
  loaded plugins: charon aes des rc2 sha2 sha1 md5 random nonce x509 revocation constraints pubkey pkcs1 pgp dnskey sshkey pem af-alg fips-prf gmp xcbc hmac attr kernel-netlink resolve socket-default connmark stroke updown xauth-generic
Listening IP addresses:
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
  <IP_ADDRESS>
Connections:
device3hub1-Connhub1_10107040:  %any...<IP_ADDRESS>  IKEv2, dpddelay=30s
device3hub1-Connhub1_10107040:   local:  [CN=device-device3-cert] uses pre-shared key authentication
device3hub1-Connhub1_10107040:   remote: [CN=hub-hub1-cert] uses pre-shared key authentication
device3hub1-Connhub1_10107040:   child:  dynamic === <IP_ADDRESS>/0 TUNNEL, dpdaction=restart
Security Associations (1 up, 0 connecting):
device3hub1-Connhub1_10107040[1]: ESTABLISHED 11 minutes ago, <IP_ADDRESS>[CN=device-device3-cert]...<IP_ADDRESS>[CN=hub-hub1-cert]
device3hub1-Connhub1_10107040[1]: IKEv2 SPIs: 5588b29a6cd6dc67_i* 50ccfbf6a20edbf3_r, pre-shared key reauthentication in 2 hours
device3hub1-Connhub1_10107040[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_4096
device3hub1-Connhub1_10107040{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c269da44_i cf383ef2_o
devConnhub1_10107040{1}:  AES_CBC_256/HMAC_SHA2_256_128, 0 bytes_i, 0 bytes_o, rekeying in 33 minutes
device3hub1-Connhub1_10107040{1}:   <IP_ADDRESS>/32 === <IP_ADDRESS>/0
device3hub1-Connhub1_10107040{2}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: ca3eaf32_i c6af21e9_o
device3hub1-Connhub1_10107040{2}:  AES_CBC_256/HMAC_SHA2_256_128/MODP_4096, 0 bytes_i, 0 bytes_o, rekeying in 33 minutes
device3hub1-Connhub1_10107040{2}:   <IP_ADDRESS>/32 === <IP_ADDRESS>/0

Is it necessary to create another CRD (ipsecsite or ipsechost) to connect the two nodes or should the hub do it immediately?

@rreisim. There's no need to add extra ipsec CR for the connection. Can you try to use sudo nsenter -t <pid-of-cnf> -n ip xfrm m to monitor your pings and see if there's traffic showing there. Also, please use tcpdump to check the traffic and see if it goes into the right interface.

I close this thread because it was possible to establish a connection through the IP tunne


Refactor massive account controller Reconcile

Make this mostly-monolithic method into more manageable methods.
Pure refactor, no change to functionality or code paths.

Note to reviewers: The diff may be easier to look at with whitespace off.

@rogbas @fahlmant @clcollins @iamkirkbater @ArielLima @yeya24 @amolgautam25 Please run tests and do some in-depth review on a few functions.

@2uasimojo Could we get some unit tests to go along with this PR? Seems like a good time to add those in.

@rogbas @clcollins @fahlmant @ArielLima can you please give it a try locally and LGTM?

@2uasimojo could you please rebase?

@rogbas @drpaneas please review

@clcollins can you please give it a test locally and comment?

This will need a "rebase" before it's worth looking at. It's really a full redo. I'd like to wait until other things that touch the account_controller are merged though. Is #439 close?

Does this PR still need to go in?

Does this PR still need to go in?

IMO it is still worth doing, but it still needs a complete redo. I've kind of been waiting for the dust to settle. Other (functional) changes are higher priority.
If you just want to get this off the radar, we can close it. I can reopen (or spin up a new PR, since the next iteration will bear little resemblance to this one) when it's time to move on it.

@2uasimojo we're in a good point for rebasing/merging this PR, could you please rebase?
There are not major PRs on the radar at this moment.

Roger wilco. On it.

This is a full redo. Don't try to compare it to earlier revs.
I wish there was a way to look at the diff that would make it clearer how little has changed, but I tried various options (whitespace off, unified vs split) and it still looks huge. Sorry about that.


DMAC peripherals

DMAC peripherals
This is a tracking PR to add DMA support for some peripherals. It is also meant to be an example for other contributors showing how to integrate DMA transfers into other peripheral implementations.
API changes
There are some breaking API changes in the PR. Recognizing the fact that individual DMA Channels should be moveable, and should be able to control themselves in a standalone way, the API was modified such that each Channel can access the DMAC PAC peripheral via Peripherals::steal().DMAC. This avoids neesing to pass an &mut DmaController reference every time we want to mutate or read a Channel's configuration. The contract is as follows: each individual Channel may only access registers pertaining to itself. It may not modify or read registers controlling other channels, or general DMAC configuration registers. This is mostly done through the Channel::with_chid method.
async?
I want to start off this section by mentioning I don't know how contributors of this HAL feel about supporting async/await, so any comments are appreciated.
Given that the entire point of DMA transfers is to free up the CPU while the hardware does the transfer, I think it makes sense to support a standard asynchronous model. Right now, DMA Transfers have the option of adding a waker closure, which will get called when the transfer is complete, à la sercom::v2::spi_future.
This works very well on the application side of things, but it does make developing device driver libraries really hard, without resorting to the blocking peripheral implementations. The defacto traits in embedded-hal only support a small subset of non-blocking operations. Notably, I2C only has blocking support. I'd like to propose that we start supporting async traits, maybe from embassy? These could be feature-gated behind an async feature.
Asynchronous DMA/Peripheral transfers seem to fit perfectly within the scope of usefulness of async/await. This is a personal opinion, but I'd really like seeing more asynchronous device drivers within the Rust embedded ecosystem.

Isn't embassy nightly only? I believe it uses several unstable features, ones that may not be stable for a long time either. It's also very new. I think it just got pushed to crates.io. I don't know that it's a great fit for a dependency. I guess if its feature-gated it's not a big deal.
To be honest, I'm not totally sold on the idea of async. It seems interesting, but there also seem to be a lot of mixed opinions on it. For embedded work, I really like the RTIC approach of interrupt driven tasks. Most of my use cases for embedded devices have some sort of real-time component, which seems to fit well with RTIC. Maybe the async model is better for other situations? Or maybe I just don't see the benefits yet?

I say that having developed spi_future myself, though, so maybe there are good use cases for it.

@bradleyharden To be honest, I kind of agree that RTIC is probably the superior model as far as maturity right now. One problem I'm trying to solve is taking advantage of concurrent transfers and communication protocols in the context of device driver crates. Unless I'm missing something, all of the concurrency logic from e.g. RTIC has to be inside the final executable crate, which leaves device drivers with little options for dealing with asynchronicity. Here's
/// This is a function in a device driver crate
fn example_transaction(spi: embedded_hal::spi::FullDuplex){
    // Receive single byte
    nb::block!(spi.read()).unwrap();

    // Process data...

    // Send single byte
    nb::block!(spi.send(something)).unwrap();
}

Even though embedded_hal provides non-blocking transfers, the only useful thing that can be done is to block! on them. The problem is even more exacerbated if we look at the fact that embedded_hal only provide non-blocking traits for single-byte transfers, and only blocking traits for buffered transfers. I2C transfers for example, are exclusively blocking.
I guess another way for library crates to achieve something similar would be to provide a waker, like spi_future and this PR currently does, and return an nb::Error. This does add a whole lot of work for driver developers though, because now the state has to be tracked internally, which is a little like what async/await is already trying to accomplish.

Okay party people, I think this is ready to merge!

I see a few updates in the examples, but no example of constructing the spi dma.

@sajattack

I see a few updates in the examples, but no example of constructing the spi dma.
True that, spi docs is now up!


Yuval nodetaint

This is just a rebase of Yuval's controller I want to run through CI right quick

@ilrudie: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
5cc03f14fff85b46af9a11fb0842a54f7830acf5
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


The sample does not run debug in the toolkit.

The sample does not run debug in the toolkit.
If I just create a new app, the test debug works fine.
When I download the apps here and run debug, the following error occurs: '[login.UserError]: Failed to find a subscription.'
I'm already logged in to both Azure and Teams. Which one do I need to log in to more?
I'd like to know the solution.

Hello @minces92
This error message you are facing suggests that there might be an issue with your Azure subscription or This happens sometimes vs code problems, by restarting vs code can fix it.
Double-check that you are logged in to the correct Azure account that has an active subscription. If you have multiple Azure accounts, make sure that you are using the one associated with the subscription you want to use.
If you have confirmed that you are logged in to the correct Azure account and still encountering this issue, you may want to try logging out and logging back in to refresh your credentials.

hello @Vikram-MSFT
Please explain which active subscriptions of Azure are needed? I have to request them to get those permissions, but I can't ask for all of them.

Hello @minces92
To run an app using the Visual Studio Code Toolkit, you need to have an active Azure subscription. You can deploy your application to the provisioned resources in an active Azure subscription by using the Teams Toolkit extension for Visual Studio Code.
Ref: https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension

Hello @Vikram-MSFT
It is not possible to check whether you have an Active Azure subscription because access to Azure is blocked within the company. So, I apologized and explained what permissions were needed.
But I am already using the Teams Toolkit in VSC and testing it while debugging the Custom App.
The current issue is that I wanted to test the sample posted here, but I shared an error that prevented it from running.

Hello @minces92,
Could you please confirm if you are able to login to Azure and able to create Azure Bot or App registration?
If not, please check your admin to provide the access on it and try it once.
Also, please let us know which sample you have downloaded and try to run?


Support for Gtk# and mono

Hi!
I really liked to use ReactiveUI and WPF for a desktop application (and that works on Windows desktop only). Currently, there is no support for GTk#. How difficult is it to add support for Gtk#?
Would code be similar to that for Windows Forms? Maybe I could get some idea about how to do it by reading that code.
Any suggestions/guidance is appreciated.

I second this! It would be great!


unwrap() calls can propagate to Python PanicExceptions

In some cases, calls to unwrap can result in PanicExceptions propagating out to Python callers, but without actionable error messages to help users solve possible issues.
For example:
>>> import pyqir_generator as pqg
>>> builder.add_quantum_register("qr", 3)
>>> builder.add_classical_register("cr0", 1) # ← typo here!
>>> builder.h("qr0")
>>> builder.m("qr0", "cr0")
>>> builder.get_ir_string()
---------------------------------------------------------------------------
PanicException                            Traceback (most recent call last)
~\...\1016496886.py in <module>
----> 1 builder.get_ir_string()

~\...\lib\site-packages\pyqir_generator\builder.py in get_ir_string(self)
    235         Returns the modeled circuit as an LLVM IR module (human readable) string.
    236         """
--> 237         return self.pyqir.get_ir_string()
    238
    239     def get_bitcode_base64_string(self):

PanicException: called `Option::unwrap()` on a `None` value

In this example, the typo in the call to add_classical_register is not easy to find, as the eventual error message does not mention that register name was incorrect.

In the new API, it's still possible to get a panic by mixing qubits/results from different modules:
from pyqir.generator import BasicQisBuilder, SimpleModule
mod1 = SimpleModule("mod", 1, 0)
mod2 = SimpleModule("mod", 2, 0)
qis1 = BasicQisBuilder(mod1.builder)
qis1.x(mod2.qubits[1])
print(mod1.ir())

The panic message was made more informative recently, but is more confusing with the new API, since "qubit1" doesn't appear in the user's code:
thread '<unnamed>' panicked at 'Qubit qubit1 not found.', qirlib\src\generation\qir\instructions.rs:23:28
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyo3_runtime.PanicException: Qubit qubit1 not found.

This particular issue is fixed - mixing values from different contexts is raises a normal Python exception now. There might be more panics in other places, but I think separate issues specifically for those should be filed instead.


install fails due to pyjq

CloudMapper install on OSX High Sierra 10.13.6 fails.  I successfully:

cloned the repo,
used brew to install all the prerequisites, including jq & pyjq

Then when using pipenv to install - i consistently get errors regarding "pyjq"
Here is the output log of the failed install
$ pipenv install --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
Installing dependencies from Pipfile…
An error occurred while installing pyjq==2.1.0! Will try again.
An error occurred while installing boto3==1.9.70! Will try again.
An error occurred while installing pandas==0.23.4! Will try again.
An error occurred while installing seaborn==0.9.0! Will try again.
An error occurred while installing matplotlib==2.2.2! Will try again.
🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 11/11 — 00:00:12
Installing initially failed dependencies…
☤  ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 5/5 — 00:00:52
[pipenv.exceptions.InstallError]:   File "/usr/local/Cellar/pipenv/2018.11.26_1/libexec/lib/python3.7/site-packages/pipenv/cli/command.py", line 254, in install
[pipenv.exceptions.InstallError]:       editable_packages=state.installstate.editables,
[pipenv.exceptions.InstallError]:   File "/usr/local/Cellar/pipenv/2018.11.26_1/libexec/lib/python3.7/site-packages/pipenv/core.py", line 1874, in do_install
[pipenv.exceptions.InstallError]:       keep_outdated=keep_outdated
[pipenv.exceptions.InstallError]:   File "/usr/local/Cellar/pipenv/2018.11.26_1/libexec/lib/python3.7/site-packages/pipenv/core.py", line 1253, in do_init
[pipenv.exceptions.InstallError]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.InstallError]:   File "/usr/local/Cellar/pipenv/2018.11.26_1/libexec/lib/python3.7/site-packages/pipenv/core.py", line 862, in do_install_dependencies
[pipenv.exceptions.InstallError]:       _cleanup_procs(procs, False, failed_deps_queue, retry=False)
[pipenv.exceptions.InstallError]:   File "/usr/local/Cellar/pipenv/2018.11.26_1/libexec/lib/python3.7/site-packages/pipenv/core.py", line 681, in _cleanup_procs
[pipenv.exceptions.InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: ['Collecting pyjq==2.1.0',
Using cached https://files.pythonhosted.org/packages/ec/c1/b5fcba48cb715b88b5ad619d1769204411383e2a275dfddda2d2fa8f99dd/pyjq-2.1.0.tar.gz',
Requirement already satisfied, skipping upgrade: six in /Users//venv/lib/python3.7/site-packages (from pyjq==2.1.0) (1.10.0)',
Installing collected packages: pyjq'
Running setup.py install for pyjq: started',
Running setup.py install for pyjq: finished with status 'error'",
Complete output from command /Users//venv/bin/python3 -u -c "import setuptools, tokenize;file='/private/var/folders/_2/nrg1pnsx2z583v436t5ch1hc0000gr/T/pip-install-c4p4gc1i/pyjq/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /private/var/folders/_2/nrg1pnsx2z583v436t5ch1hc0000gr/T/pip-record-egf1koti/install-record.txt --single-version-externally-managed --compile --install-headers /Users//venv/include/site/python3.7/pyjq:'
running install'
running build'
running build_py'
creating build'
creating build/lib.macosx-10.13-x86_64-3.7'
copying pyjq.py -> build/lib.macosx-10.13-x86_64-3.7'
warning: build_py: byte-compiling is disabled, skipping.
running build_ext'
checking for a BSD-compatible install... /usr/bin/install -c'
checking whether build environment is sane... yes'
checking for a thread-safe mkdir -p... ./install-sh -c -d'
checking for gawk... gawk'
checking whether make sets $(MAKE)... yes'
checking for gcc... gcc'
checking whether the C compiler works... yes'
checking for C compiler default output file name... a.out'
checking for suffix of executables...'
checking whether we are cross compiling... no'
checking for suffix of object files... o'
checking whether we are using the GNU C compiler... yes'
checking whether gcc accepts -g... yes'
checking for gcc option to accept ISO C89... none needed'
checking for style of include used by make... GNU'
checking dependency style of gcc... gcc3'
checking build system type... i386-apple-darwin17.7.0'
checking host system type... i386-apple-darwin17.7.0'
checking how to print strings... printf'
checking for a sed that does not truncate output... /usr/bin/sed'
checking for grep that handles long lines and -e... /usr/bin/grep'
checking for egrep... /usr/bin/grep -E'
checking for fgrep... /usr/bin/grep -F'
checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld'
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no'
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B'
checking the name lister (/usr/bin/nm -B) interface...
'
----------------------------------------']
[pipenv.exceptions.InstallError]:
'Command "/Users//venv/bin/python3 -u -c "import setuptools, tokenize;file='/private/var/folders/_2/nrg1pnsx2z583v436t5ch1hc0000gr/T/pip-install-c4p4gc1i/pyjq/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))"
install --record /private/var/folders/_2/nrg1pnsx2z583v436t5ch1hc0000gr/T/pip-record-egf1koti/install-record.txt --single-version-externally-managed --compile --install-headers /Users/*/venv/include/site/python3.7/pyjq"
failed with error code 1 in /private/var/folders/_2/nrg1pnsx2z583v436t5ch1hc0000gr/T/pip-install-c4p4gc1i/pyjq/']
ERROR: ERROR: Package installation failed...

Hmm, nothing jumps out at me as the cause for this error.  This is more reason for me to Dockerize for issue #287

potential solution for me was to clone the jq repo and go through the steps to make & install it manually instead of relying on the Homebrew install of jq. Once I did that and redid the cloudmapper install steps, it still paused on installing the dependencies from Pipfile - but this time it did not error out on the pyjq install... i agree that Dockerize-ing may solve this by providing the complete set of libraries needed at the correct version.

I've also gotten this error, and my workaround is to ensure that I do a pipenv shell first after installation.

Definitely have had all of these installation problems on Mac Sierra.
I've worked through the dependency hell of pyjq and can offer the following advice.

During installation attempts if a Lockfile has been created, make sure to remove it before attempting to pipenv install again.

Installing with the --sequential can be helpful when working through dependency and installation issues https://docs.pipenv.org/en/latest/advanced/

If you still experience a failure when resolving dependencies and installing, trying installing pyjq separately with pipenv install pyqi --sequential

Had to do python  pip install pyjq
But still pyjq fails.
OS: Linux Ubuntu 18.x
Python 3.6.x
(envpy3) ➜  cloudmapper git:(master) ✗ pip install pyjq
Collecting pyjq
  Downloading https://files.pythonhosted.org/packages/66/74/7f5c7789c894a943088040a0c148f7ac5daddf4096cf820e3ff15ae75ea0/pyjq-2.3.1.tar.gz (2.1MB)
    100% |████████████████████████████████| 2.1MB 753kB/s
Collecting six (from pyjq)
  Cache entry deserialization failed, entry ignored
  Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Building wheels for collected packages: pyjq
  Running setup.py bdist_wheel for pyjq ... error
  Complete output from command /home/dariush/project/aws/securityauditor/cloudmapper/envpy3/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-f4x0rzd6/pyjq/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpfcpmiu8upip-wheel- --python-tag cp36:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for pyjq

I've rerun the install steps on a mac without issue.
git clone git@github.com:duo-labs/cloudmapper.git
cd cloudmapper/
pipenv install --skip-lock
pipenv shell
mv config.json.demo config.json
python cloudmapper.py prepare --account demo

For @dariushazimi, it looks like you're install pyjq 2.3.1 when it should be 2.1.0 as that is what is set in the Pipfile (https://github.com/duo-labs/cloudmapper/blob/master/Pipfile#L7)
Without more info for the other comments in this issue, I'm closing this due to staleness under the assumption that the other issues were due to the install instructions not being followed correctly, or possibly other issues on the host system.

I am facing same issue in ubuntu 18.04 OS.
Command "/home/ubuntu/cloudmapper/venv/bin/python3 -u -c "import setuptools, tok                                                                                enize;file='/tmp/pip-build-l0pynqe8/pyjq/setup.py';f=getattr(tokenize, 'open                                                                                ', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(co                                                                                de, file, 'exec'))" install --record /tmp/pip-_p8fg38t-record/install-record                                                                                .txt --single-version-externally-managed --compile --install-headers /home/ubunt                                                                                u/cloudmapper/venv/include/site/python3.6/pyjq" failed with error code 1 in /tmp                                                                                /pip-build-l0pynqe8/pyjq/

i hit the same issue with Amazon Linux. had tried downgrade the version to 2.1.0 but still no luck.

I am running into issue on Mac.
I am able to install pyjq separately
Building wheels for collected packages: pyjq
  Building wheel for pyjq (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /Users/kayue/Sites/cloudmapper/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py'"'"'; __file__='"'"'/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-wheel-fjgz138y
       cwd: /private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/
  Complete output (54 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.14-x86_64-3.8
  copying pyjq.py -> build/lib.macosx-10.14-x86_64-3.8
  running build_ext
  checking for a BSD-compatible install... /usr/bin/install -c
  checking whether build environment is sane... yes
  checking for a thread-safe mkdir -p... ./install-sh -c -d
  checking for gawk... no
  checking for mawk... no
  checking for nawk... no
  checking for awk... awk
  checking whether make sets $(MAKE)... no
  checking whether make supports nested variables... no
  checking for gcc... gcc
  checking whether the C compiler works... no
  configure: error: in `/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/dependencies/onig-6.9.0':
  configure: error: C compiler cannot create executables
  See `config.log' for more details
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 93, in <module>
      setup(
    File "/Users/kayue/Sites/cloudmapper/venv/lib/python3.8/site-packages/setuptools/__init__.py", line 144, in setup
      return distutils.core.setup(**attrs)
    File<EMAIL_ADDRESS>line 148, in setup
      dist.run_commands()
    File<EMAIL_ADDRESS>line 966, in run_commands
      self.run_command(cmd)
    File<EMAIL_ADDRESS>line 985, in run_command
      cmd_obj.run()
    File "/Users/kayue/Sites/cloudmapper/venv/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 290, in run
      self.run_command('build')
    File<EMAIL_ADDRESS>line 313, in run_command
      self.distribution.run_command(command)
    File<EMAIL_ADDRESS>line 985, in run_command
      cmd_obj.run()
    File<EMAIL_ADDRESS>line 135, in run
      self.run_command(cmd_name)
    File<EMAIL_ADDRESS>line 313, in run_command
      self.distribution.run_command(command)
    File<EMAIL_ADDRESS>line 985, in run_command
      cmd_obj.run()
    File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 30, in run
      self._build_oniguruma()
    File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 39, in _build_oniguruma
      self._build_lib(
    File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 70, in _build_lib
      subprocess.check_call(command, cwd=lib_dir)
    File<EMAIL_ADDRESS>line 364, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['./configure', 'CFLAGS=-fPIC', '--disable-shared', '--prefix', '/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/dependencies/onig_install']' returned non-zero exit status 77.
  ----------------------------------------
  ERROR: Failed building wheel for pyjq
  Running setup.py clean for pyjq
Failed to build pyjq
Installing collected packages: pyjq, toml, pylint, requests, scipy, seaborn, typed-ast
    Running setup.py install for pyjq ... error
    ERROR: Command errored out with exit status 1:
     command: /Users/kayue/Sites/cloudmapper/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py'"'"'; __file__='"'"'/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-record-35kzmlbz/install-record.txt --single-version-externally-managed --compile --install-headers /Users/kayue/Sites/cloudmapper/venv/include/site/python3.8/pyjq
         cwd: /private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/
    Complete output (56 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.14-x86_64-3.8
    copying pyjq.py -> build/lib.macosx-10.14-x86_64-3.8
    running build_ext
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... ./install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... no
    checking whether make supports nested variables... no
    checking for gcc... gcc
    checking whether the C compiler works... no
    configure: error: in `/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/dependencies/onig-6.9.0':
    configure: error: C compiler cannot create executables
    See `config.log' for more details
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 93, in <module>
        setup(
      File "/Users/kayue/Sites/cloudmapper/venv/lib/python3.8/site-packages/setuptools/__init__.py", line 144, in setup
        return distutils.core.setup(**attrs)
      File<EMAIL_ADDRESS>line 148, in setup
        dist.run_commands()
      File<EMAIL_ADDRESS>line 966, in run_commands
        self.run_command(cmd)
      File<EMAIL_ADDRESS>line 985, in run_command
        cmd_obj.run()
      File "/Users/kayue/Sites/cloudmapper/venv/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File<EMAIL_ADDRESS>line 545, in run
        self.run_command('build')
      File<EMAIL_ADDRESS>line 313, in run_command
        self.distribution.run_command(command)
      File<EMAIL_ADDRESS>line 985, in run_command
        cmd_obj.run()
      File<EMAIL_ADDRESS>line 135, in run
        self.run_command(cmd_name)
      File<EMAIL_ADDRESS>line 313, in run_command
        self.distribution.run_command(command)
      File<EMAIL_ADDRESS>line 985, in run_command
        cmd_obj.run()
      File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 30, in run
        self._build_oniguruma()
      File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 39, in _build_oniguruma
        self._build_lib(
      File "/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py", line 70, in _build_lib
        subprocess.check_call(command, cwd=lib_dir)
      File<EMAIL_ADDRESS>line 364, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['./configure', 'CFLAGS=-fPIC', '--disable-shared', '--prefix', '/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/dependencies/onig_install']' returned non-zero exit status 77.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Users/kayue/Sites/cloudmapper/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py'"'"'; __file__='"'"'/private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-install-b8te63qo/pyjq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/l2/s5ng1l0s5ggcf0sfwmmdxhp80000gn/T/pip-record-35kzmlbz/install-record.txt --single-version-externally-managed --compile --install-headers /Users/kayue/Sites/cloudmapper/venv/include/site/python3.8/pyjq Check the logs for full command output.
WARNING: You are using pip version 20.1.1; however, version 20.2.3 is available.
You should consider upgrading via the '/Users/kayue/Sites/cloudmapper/venv/bin/python3 -m pip install --upgrade pip' command.

i hit the same issue with Amazon Linux. had tried downgrade the version to 2.1.0 but still no luck.

got it fixed with reinstalling the libs: yum install autoconf automake libtool python3-devel.x86_64 python3-tkinter python-pip jq awscli

The pyjq dependency seems a bit finicky. In general, I just run cloudmapper docker and there are no problems. Recently I was forced to run cloudmapper on windows on AWS Workspace which doesn't support nested virtualization/docker. I could install jq via conda or github releases but I think pyjq needs the headers so it still failed.
At first I tried to replace pyjq with jmespath. Unfortunately, jmespath doesn't support all the pyjq syntax. In the end I came up with a hack that allows me to run collect.py natively on windows using subprocess to call out to native jq. I wouldn't want to see this merged into master, it's so hacky, but for extreme workarounds, it might be helpful. https://github.com/kbroughton/cloudmapper/tree/collect_jq.
Probably a more robust solution would be to build conda packages for jq with headers + pyjq across all platforms if native installs are required by some users.


Handle ErrUnexpectedEndOfDemo gracefully.

Closes https://github.com/pnxenopoulos/awpy/issues/189
We now just print a warning that the error occured and to check the result if we get a ErrUnexpectedEndOfDemo when parsing a demo.
Also did a minor cleanup and fixed the gitignore when it comes to demo files.

Yeah, the else branch was doing something that was also done at the end of the if branch. So i just moved that out of the if/else and deleted the else branch.


Add browser console logging for websocket to render times

Print a log message when the time from websocket creation to first
render takes too long (100ms).
Activate logging via localStorage["debug"] = "scope:web-api-utils" in a browser console.

Activate logging via localStorage["debug"] = "scope:web-api-utils" in a browser console.

Can you add this to client/README.md?

Can you add this to client/README.md?

Has been there for a while.

Has been there for a while.

Ops, I thought it was a new thing.

LGTM


All links in 1.4 archive went invalid

All links in 1.4 archive site are missing v1.4 path.
For example, in https://archive.istio.io/v1.4/docs/setup/
Actual:
https://archive.istio.io/docs/setup/getting-started/
Expected:
https://archive.istio.io/v1.4/docs/setup/getting-started/
Bug description
Expected behavior
Steps to reproduce the bug
Version (include the output of istioctl version --remote and kubectl version and helm version if you used Helm)
How was Istio installed?
Environment where bug was observed (cloud vendor, OS, etc)

Doc issues should be opened in the istio/istio.io repo, but this one not needed anyway, since we already have an issue for the problem: https://github.com/istio/istio.io/issues/6788


runtime-sdk: Support storage update gas costs

Introduce the notion of storage gas which is charged for each byte of a key/value pair that is updated in storage. For removals only the size of the key is charged. The reason for this is to reflect actual costs that storage updates have (as any state update increases the size of the write log).
Storage gas is handled in a somewhat special way where any gas already used by transaction execution is taken into account. This means that storage gas is only charged in case a transaction would use more storage gas than execution gas in order to limit storage growth.

Ethereum has the concept of 'hot' vs 'cold' storage I/O, which is like a thru-cache which refunds gas if the item exists in cache (so doing a 'hot' write costs less than doing a 'cold' write as many hot writes only result in the equivalent of a single cold write). These have been slowly tuned over time to reflect the average characteristics of nodes so for them (Ethereum etc.) it makes sense.
Wouldn't it make sense to modify the cost of the SLOAD & SSTORE operations than to add a Sapphire-specific gas calculation?

Wouldn't it make sense to modify the cost of the SLOAD & SSTORE operations than to add a Sapphire-specific gas calculation?

This mechanism is more general (works for all SDK modules) and to me easier to reason about (cost per byte which actually ends up in the write log).


Check if GBDT Support Entropy and Gini for Impurity Type

Seems exception when run GBDT with entropy impurity type.

No need support:
I checked again why regression tree doesn’t support gini/entropy impurity:
For gini/entropy tree growth, stats are on each label, which means in each label each feature, like label 0 in category A, count is 10, sum is 9.
While for GBDT, label are changed to gradient after the first tree. For example, record A with label 1, but later it is predicted to 0.8, the next label is changed to gradient which is (1-0.8=0.2), 0.2 is not a real label and cannot be stats again.
Below are scikit-learn validation for regression impurity: (MSE is variance in Shifu.)
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/tree.py#L60
CRITERIA_CLF = {"gini": _criterion.Gini, "entropy": _criterion.Entropy}
CRITERIA_REG = {"mse": _criterion.MSE, "friedman_mse": _criterion.FriedmanMSE,
"mae": _criterion.MAE}
And Spark MLLib validation for regression impurity:
https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/tree/configuration/Strategy.scala#L146
case Classification =>
require(numClasses >= 2,
s"DecisionTree Strategy for Classification must have numClasses >= 2," +
s" but numClasses = $numClasses.")
require(Set(Gini, Entropy).contains(impurity),
s"DecisionTree Strategy given invalid impurity for Classification: $impurity." +
s"  Valid settings: Gini, Entropy")
case Regression =>
require(impurity == Variance,
s"DecisionTree Strategy given invalid impurity for Regression: $impurity." +
s"  Valid settings: Variance")


[Feature Request] Looping sound effects for ambiance

Requesting the ability to make looping sound effects for things like background rain etc. if one wanted to also play music over the top of it, so ambiance doesn't cut out as soon as music plays.
Could be scripted by adding an argument to the existing SOUND:PlaySE function to allow looping, e.g. SOUND:PlaySE("Rain", true) where "true" means "loop this sound", could be deactivated by setting that to false or making a function to terminate the sound player at that point (latter might be a better solution so you don't have to wait until the end of a loop to stop playing sounds: like a "SOUND:StopSE" or "SOUND:FadeSE" for fadeouts or something).

Added in https://github.com/RogueCollab/RogueEssence/commit/914c43185012693478e4ab06cc9391ad5d0cf37f
Ex
SOUND:LoopSE("Battle/EVT_Applause")
SOUND:LoopBattleSE("EVT_Applause")
SOUND:StopSE("Battle/EVT_Applause")
SOUND:StopBattleSE("EVT_Applause")


Get json request test to pass with other credentials

Rely on system certs

Make expectation match when other credentials are provided

Failure looked like general timeouts / tests running too fast, maybe. Restarted one environment.

@davidhemphill I just merged the bank account PR. I can update the SDK to turn off local certificates via config and fixup JSON tests to ue constants.

@mglaman Sounds good.

@davidhemphill see @ccfcd1e2d9370259d6769a5d7b39782cdf5dc1ef
Edit your phpunit.xml and change TESTS_CERTIFICATE_VERIFY to true. This way tests will run off system and not PEM file.
Reopen new issue if still being wonkers for you.


Refactor Mship/Role::hasTimeout

In gitlab by @A-Lawrence on Feb 27, 2016, 21:42
Currently it's static and expects a parameter.
Whilst this is useful for quickly filtering a collection, it's slightly counter intuitive when actually trying to use it on a method.
Must remember to change references

In gitlab by @A-Lawrence on Feb 27, 2016, 21:59
mentioned in commit 2198a40464c3ccb873e9467bebf648c4a04a5847

In gitlab by @A-Lawrence on Feb 27, 2016, 22:01
mentioned in commit 1e89bebf2ba008f9e306e2420d91715f57f05688


Use module syntax to manage polyfill dependencies

Continue from #366.
In this example I use es6-module-transpiler's bundle format:
data.now.js
var customVar = new Date().getTime();
Date.now = function now() {
    return customVar;
};

performance.now.js
import "./data.now";

var customVar = "polyfill performance.now";
alert(customVar);

compile-modules convert performance.now.js

=>
(function() {
    "use strict";
    var customVar = new Date().getTime();
    Date.now = function now() {
        return customVar;
    };

    var performance$now$$customVar = "polyfill performance.now";
    alert(performance$now$$customVar);
}).call(this);

And if you do
compile-modules convert performance.now.js data.now.js

It's smart enough to not repeat the data.now.js file.
This actually implies modular feature detection, if we ever decide to go that route:
import support from "feature-detection/performance.now";
import "./data.now";

if (!support) {
  // Use Date.now();
}

We do need to figure out how to avoid importing unused files (in the example, data.now is never used if support is true). Probably going to rely on Loader, which Systemjs implements.
Well, data.now.js itself should make sure its code get eliminated when browsers support it.

I'm afraid I don't like this.  The dependencies in the polyfill service are not absolute - in many cases they are satisfied by the browser environment in which we run the polyfill code, and the sub-polyfill is not needed. There might be an argument for something like this for private polyfills like _enqueueMicrotask, but I don't think there's value in having two different mechanisms.  The current dependency system works well.

The current dependency system works because you use different files for different variants.
If a polyfill become something like this:
if (!supportPerformanceNow) {
 // use Date.now() to polyfill performance.now()
}

It's no longer always depends on Date.now(), it only depends on it when supportPerformanceNow is false.  This kind of "depending on a file is under a condition" is best expressed with a module loader.
See systemjs's meta config, which supports this kind of thing.
And my previous code sample should actually be
import support from "feature-detection/performance.now";

if (!support) {
  // Use Date.now();
}

Loading data.now.js or not is controlled by the config we pass to systemjs.
The only thing is that it generates systemjs boilerplate code when bundling file, but shouldn't be hard to develop a new bundling format for it.

Using module syntax to polyfill is probably not a good idea.
From caridy on stackoverflow.

Your modules should assume that the runtime is patched (when needed), and that should be part of the contract.

If we write polyfills in module syntax, we are breaking that contract.
For one, modules don't have access to the global object unless the host environment provides one (e.g., window, self, etc). That means we at least shouldn't use modules to polyfill the js standard library (e.g., Map, Symbol, etc).


Add wasm credentials and presentations examples

Description of change
Add missing verifiable credentials and verifiable presentations Wasm examples.
Links to any relevant issues
#1060
Type of change

[ ] Bug fix (a non-breaking change which fixes an issue)
[x] Enhancement (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Fix

Revocation examples are still missing, will be done in a separate PR.

Should we add the step headers like:
// ===========================================================================
    // Step 1: Create identities for the issuer and the holder.
    // ===========================================================================

to the VC example as well?

@eike-hass I added these to the VP example back then because they are pretty long and a bit complicated. The VC example is relatively small that the normal comments are enough.


CARLA master branch build on Ubuntu 20.04 not working

CARLA version: master branch and release of CARLA
Platform/OS: Ubuntu 20.04
Problem you have experienced: make launch and make package is failing
What you expected to happen: build should have worked
Steps to reproduce: Latest CARLA master branch
Other information (documentation you consulted, workarounds you tried): Latest UnrealEngine (carla branch).
I am following the instructions of the documentation: https://carla.readthedocs.io/en/latest/build_linux/#unreal-engine
UnrealEngine build succeeded.
make PythonAPI succeeded
make launch gave me this error first:
Time Elapsed 00:00:01.98
Log file: /home/sxv1kor/Downloads/GitHub/UnrealEngine/Engine/Programs/UnrealBuildTool/Log_GPF.txt
Some Platforms were skipped due to invalid SDK setup: Android.
See the log file for detailed information
Discovering modules, targets and source code for project...
/home/sxv1kor/Downloads/carla/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs(11,104): error CS0117: 'UnrealTargetPlatform' does not contain a definition for 'Win32'
/home/sxv1kor/Downloads/carla/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs(14,104): error CS0117: 'UnrealTargetPlatform' does not contain a definition for 'Win32'
Expecting to find a type to be declared in a target rules named 'CarlaUE4Target'.  This type must derive from the 'TargetRules' type defined by Unreal Build Tool.
BuildCarlaUE4.sh: Build C
If I try again, I get this error:
make package and make launch not working
Discovering modules, targets and source code for project...
Compiled assembly file '/home/sxv1kor/Downloads/carla/Unreal/CarlaUE4/Intermediate/Build/BuildRules/CarlaUE4ModuleRules.dll' appears to be for a newer CLR version or is otherwise invalid.  Unreal Build Tool will try to recompile this assembly now.  (Exception: Bad IL format. The format of the file '/home/sxv1kor/Downloads/carla/Unreal/CarlaUE4/Intermediate/Build/BuildRules/CarlaUE4ModuleRules.dll' is invalid.)
/home/sxv1kor/Downloads/carla/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs(11,104): error CS0117: 'UnrealTargetPlatform' does not contain a definition for 'Win32'
/home/sxv1kor/Downloads/carla/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs(14,104): error CS0117: 'UnrealTargetPlatform' does not contain a definition for 'Win32'
Expecting to find a type to be declared in a target rules named 'CarlaUE4Target'.  This type must derive from the 'TargetRules' type defined by Unreal Build Tool.

Why doesnt the build work with the given instructions ?

I see now why I get this error. I have not followed the build instructions..
Have used the UnrealEngine 5.1 (carla branch) instead of the fork for Carla 4.26 as given in docs!


Parameter verification bug with np.bool arrays

Describe the bug
Trying to pass a Numpy array of bool values to a CVXPY Parameter fails.
To Reproduce
import cvxpy as cp
import numpy as np
p = cp.Paramter(2)
val = np.array([True, False])
p.value = val  # fails here

Expected behavior
Set the value of p to val. If needed convert it to int.
Output
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Users/vidak.kazic/.virtualenvs/colours-reduce/lib/python3.7/site-packages/cvxpy/expressions/constants/parameter.py", line 63, in value
    self._value = self._validate_value(val)
  File "/Users/vidak.kazic/.virtualenvs/colours-reduce/lib/python3.7/site-packages/cvxpy/expressions/leaf.py", line 383, in _validate_value
    delta = np.abs(val - projection)
TypeError: numpy boolean subtract, the `-` operator, is deprecated, use the bitwise_xor, the `^` operator, or the logical_xor function instead.

Version

OS: macOS Catalina (10.15.1)
CVXPY Version: 1.0.24

Additional context
If we do p.value = val.astype(int) everything works, but I feel we should fix the error.
I would be happy to try and make a PR if you guys want, but would need to look more into how the projection is created in the verifier.

Pretty sure this is fixed in 1.1.


selecting __typename is still returning as optional

  So I have a union type that I discriminate by the `__typename` property. The problem I’m seeing is that in the generated types for my query where I fetch `__typename` from the union type, `__typename` is optional. It shouldn’t be optional in the return type since I’m expressly getting it through my query:

query SomeQuery {
    someUnion {
        __typename
    }
}

Results in a return type with __typename as optional, even though I’m specifically requesting it.
So how do I make the __typenames not optional (i.e., required)?
Originally posted by @ericbf in https://github.com/dotansimha/graphql-code-generator/discussions/8786

waiting to find a repro https://github.com/dotansimha/graphql-code-generator/discussions/8786#discussioncomment-4680979

This repro is pretty minimal. I have a basic query, I request __typename in my query, but codegen types __typename as optional (even though it should not be optional):
https://codesandbox.io/s/zen-butterfly-9rkqkg?file=/gql/graphql.ts

are you sure? In the HelloQuery you just shared above I don't see it being an optional

Query
Type

I’m going to have to say this was probably user error. I was using an older version of graphql with express-graphql. I’ve switched to graphql-yoga since then, and updated all the versions, and reworked the config, and it is working as expected now. I tried reverting back to the old versions and haven’t been able to reproduce it any more 🤦🏻♂. Either a quirk with the specific version combination that I was using at that time, or user error... We can close this, and I’ll comment to re-open if I am able to reproduce my setup from before.


Use solidtestsuite/webid-provider-tests:v1.2.0

The docker image is still uploading but you can see the added test here:
https://github.com/solid/webid-provider-tests/blob/master/test/surface/obtain-auth-headers.test.ts


Completion items not properly matching full 'word'

I suppose this is a continuation of #38. The issue reported there was resolved by 655d2ee2673950451a491294fd3ce7e17cfb0a24 but there is still an issue with the word selection logic.
The issue is that the replacement doesn't always match all the relevant text.
Example:
(ns example
  (:require
   [clojure.test :as test]))

(test/use|)

;; Press accept

;; Result:
(test/test/use-fixtures|)

;; Expected:
(test/use-fixtures|)

So it's not replacing the entire text of test/use it's just replacing the use component.
I wonder if the lsp completion items contain context about the range they are operating over.

Another example of this issue, still in clojure:
(ns example
  (:require
   [clojure.test :as scope.test]))

scope.te|
;; autocompletes to
scope.scope.test

I wonder if the lsp completion items contain context about the range they are operating over.

They typically do (textEdit field on completion items) but it sounds like clojure doesn't include these. It sounds like it instead passes through an insertText which gets converted into a textEdit interally here. I'm not sure how to handle this without writing custom context regexs (line 53) for each language

I don't think its #13 as I copied over the capabilities config from nvim-cmp-lsp into my own config.
You're right about the textEdit - I did some inspection and it's not being set. I also took a peek at how nvim-cmp does it but it was too much too untangle and didn't have much time.
But similarly to blink, nvim-cmp has a fallback to guess the range. At a glance It's implementation looks completely language agnostic so there is probably something there to base off of.

For my future self (or anyone who wants to implement this), the relevant piece on the nvim-cmp side is called by the function julien linked: https://github.com/hrsh7th/nvim-cmp/blob/f17d9b4394027ff4442b298398dfcaab97e40c4f/lua/cmp/entry.lua#L137-L160
We would need to implement similar logic here: https://github.com/Saghen/blink.cmp/blob/db3d1ad8d6420ce29d548991468cc0107fe9d04b/lua/blink/cmp/accept/text-edits.lua?plain=1#L102-L124


JAAS fails login due to NullPrincipal

Found this issue in the current master and is also present in the 5.1.x branch since 5.1.5 release.
JaasAuthenticationHandler is calling logout() before the principal is being retrieved and passes a null principal on.  This did not cause problems until the change in CasCoreAuthenticationPrincipalConfiguraton to use ChainingPrincipalResolovers with the EchoPrincipalResolver being the default.  Since no principal was set in the Authentication, it now throws UnresolvedPrincipalException.

Closing in favor of https://github.com/apereo/cas/pull/3056. (No need for issues if you are following up with a PR. Much faster that way)

Got it.


Update PyDeepLX.py

fix payload

Improve it, if there is a better solution in the original DeepLX library.


Stack: separate export 3d tilesets from import data

Currently, importing data to postgresql, extracting footprint and height, and exporting 3d tilesets all are running in one step. When I work on large datasets (SG data), it can't get tileset.json on my local computer. When I run this process in Digital Ocean, I get an error in the data upload container before exporting footprint and height. After increasing RAM of Digital Ocean to 64GB, Stack can get footprint and height, but got the same error and crashed before exporting 3d tilesets. In fact, the memory usage of Digital Ocean is less than 20%.
So firstly, I am not sure why Stack got the error when the usage of memory is not out of max.
Second, is it better to separate the export operation to avoid the crash?

This error message suggests that the error happens during the upload of the building data (CityDB.java:104). This would have happened before any footprint or height augmentation. Can you share the error message that corresponds to the case where footprint and height have been calculated?

This error message suggests that the error happens during the upload of the building data (CityDB.java:104). This would have happened before any footprint or height augmentation. Can you share the error message that corresponds to the case where footprint and height have been calculated?

I can't find any other info about this error in digital ocean. As I mentioned before, after increased RAM, it can get all footprint and height, but crashed again before extracting 3d tilesets with the same error. So I don't think this error is only related to footprint or height calculation.


Some rtsp urls cannot play video

Prerequisites
These are MANDATORY, otherwise the issue will be automatically closed.

[x] I agree to fill this issue template.
[x] I have read the Troubleshooting Guide and Support Instructions.

Issue description
Cannot play rtsp video.
log20230418.log

Context

Cannot play rtsp video,But it can be played in vlc.
vlc setting :Tools->Preferences->Input / Codecs->Live555 stream transport->RTP over RTSP (TCP).
Local test URL : rtsp://<IP_ADDRESS>:9100/dss/monitor/param/cameraid=1substream=1?token=t1
How to reproduce?

Some urls require selecting rtp over rtsp (TCP)
233524989-ebdbb50b-1050-4251-a80d-f5b663655e1a.png
Expected & current behavior

(Optional) Possible solution

Info about your environment

About Kurento Media Server

Kurento version: 6.18.1
Server OS:      Ubuntu 22
Installation method:

[] apt-get
[x] Docker
[] AWS CloudFormation
[] Built from sources

About your Application Server

Programming Language:  browser JavaScript
Kurento Client version:   6.18.1

About end-user clients

Device(s):
OS(es):
Browser(s):

Run these commands

cat /etc/lsb-release

kurento-media-server --version

dpkg -l | grep -Pi 'kurento|kms-|gst.*1.5|nice'

The log is saying:
error: Unauthorized (401)

So my first guess is that maybe the issue is that the RTSP server is rejecting connection attempts from Kurento

This rtsp URL can be played in the vlc player, but it needs to be modified to set the Live555 stream transport to RTP over RTSP (TCP). If the vlc player is not modified, a pop-up window will prompt that the rtsp URL needs authentication


ModuleNotFoundError: No module named 'pointnet2_cuda'

Why does it happen? I can't find pointnet2_cuda

i got it. My srtup.py didn't install correctly.

i got it. My setup.py didn't install correctly.
so how to solve it.

so how to solve it.
I met the same problem, have you solved it?

you can try using pip install setuptools==58.2.0 to lower your setuptool version. Besides, ninja lib is necessary.

you can try using pip install setuptools==58.2.0 to lower your setuptool version. Besides, ninja lib is necessary.
It works! Thanks a lot!


Update sprig to v3.2.0

What does this PR do?

Updates the version of the sprig library to v3.2.0 to include, among other things, the fromJson, mustFromJson functions.
Motivation

I saw the fromJson, mustFromJson functions in sprig's documentation but could not use them in Traefik's dynamic configuration in the File provider.
More

[ ] Added/updated tests
[ ] Added/updated documentation

Additional Notes

http://masterminds.github.io/sprig/defaults.html#fromjson-mustfromjson

Hello @sirlatrom,
Thanks for your contribution!
I'm wondering about potential regressions.
Since it's a major version change, can you provide a diff of something that would make clear that there is no expected regression?

Hello @sirlatrom,
Thanks for your contribution!
I'm wondering about potential regressions.
Since it's a major version change, can you provide a diff of something that would make clear that there is no expected regression?

Hello @sirlatrom,
Thanks for your contribution!
I'm wondering about potential regressions.
Since it's a major version change, can you provide a diff of something that would make clear that there is no expected regression?

I wouldn't know. I just saw the new version had the mentioned functions. I haven't looked to see if they have backported them to a v2.x version.

Hello @sirlatrom,
Thanks for your contribution!
I'm wondering about potential regressions.
Since it's a major version change, can you provide a diff of something that would make clear that there is no expected regression?

I wouldn't know. I just saw the new version had the mentioned functions. I haven't looked to see if they have backported them to a v2.x version.

Hello @sirlatrom,
Thanks for your contribution!
I'm wondering about potential regressions.
Since it's a major version change, can you provide a diff of something that would make clear that there is no expected regression?

Otherwise read this paragraph: https://github.com/Masterminds/sprig/blob/master/README.md#package-versions

Package Versions
There are two active major versions of the sprig package.

v3 is currently stable release series on the master branch. The Go API should
remain compatible with v2, the current stable version. Behavior change behind
some functions is the reason for the new major version.
v2 is the previous stable release series. It has been more than three years since
the initial release of v2. You can read the documentation and see the code
on the release-2 branch.
Bug fixes to this major version will continue for some time.

Hello @sirlatrom,
Thanks for your contribution!
I'm wondering about potential regressions.
Since it's a major version change, can you provide a diff of something that would make clear that there is no expected regression?

Otherwise read this paragraph: https://github.com/Masterminds/sprig/blob/master/README.md#package-versions

Package Versions
There are two active major versions of the sprig package.

v3 is currently stable release series on the master branch. The Go API should
remain compatible with v2, the current stable version. Behavior change behind
some functions is the reason for the new major version.
v2 is the previous stable release series. It has been more than three years since
the initial release of v2. You can read the documentation and see the code
on the release-2 branch.
Bug fixes to this major version will continue for some time.

Thanks for your feedback @sirlatrom
Here's the link for changelog between versions https://github.com/Masterminds/sprig/compare/v2.22.0...v3.2.0
Do you know what functions are impacted by the "behavior change" between v2 and v3?

Thanks for your feedback @sirlatrom
Here's the link for changelog between versions https://github.com/Masterminds/sprig/compare/v2.22.0...v3.2.0
Do you know what functions are impacted by the "behavior change" between v2 and v3?

Do you know what functions are impacted by the "behavior change" between v2 and v3?

@rtribotte Unfortunately, I don't. I've been trying to see what essential difference there are between v2 and v3, and all I can see is that more functions have been added to the "defaults.go" file: https://github.com/Masterminds/sprig/compare/v2.22.0...v3.2.0#diff-1b38200ba9e5f4b19a852f1c2a6938de5e1546bc2a02aaa431dc34c1574687e8, notably an init function that runs rand.Seed(time.Now().UnixNano()), which might cause trouble if other code using this library does something similar, but different. There are also some simplifications of the numeric functions such as toFloat64 et al., and some additional mustFoo variants of functions in list.go.

Do you know what functions are impacted by the "behavior change" between v2 and v3?

@rtribotte Unfortunately, I don't. I've been trying to see what essential difference there are between v2 and v3, and all I can see is that more functions have been added to the "defaults.go" file: https://github.com/Masterminds/sprig/compare/v2.22.0...v3.2.0#diff-1b38200ba9e5f4b19a852f1c2a6938de5e1546bc2a02aaa431dc34c1574687e8, notably an init function that runs rand.Seed(time.Now().UnixNano()), which might cause trouble if other code using this library does something similar, but different. There are also some simplifications of the numeric functions such as toFloat64 et al., and some additional mustFoo variants of functions in list.go.


src/assets/favicon.ico: Invalid Version: undefined

I'm unable to use this starter. Here's what I did:
npx create-near-app near-trial
cd near-trial
npm run dev

Same issue is thrown by React starter created with --frontend=react flag.
Problem log
><EMAIL_ADDRESS>start
> echo The app is starting! It will automatically open in your browser when ready && env-cmd -f ./neardev/dev-account.env parcel src/index.html --open

The app is starting! It will automatically open in your browser when ready
Server running at http://localhost:1234
🚨  /Users/hp/Documents/unblock-hack/near-react/src/assets/favicon.ico: Invalid Version: undefined
    at new SemVer (/Users/hp/Documents/unblock-hack/near-react/node_modules/semver/semver.js:314:11)
    at compare (/Users/hp/Documents/unblock-hack/near-react/node_modules/semver/semver.js:647:10)
    at lt (/Users/hp/Documents/unblock-hack/near-react/node_modules/semver/semver.js:688:10)
    at /Users/hp/Documents/unblock-hack/near-react/node_modules/@babel/preset-env/lib/index.js:280:22
    at Object.default (/Users/hp/Documents/unblock-hack/near-react/node_modules/@babel/helper-plugin-utils/lib/index.js:22:12)
    at getEnvPlugins (/Users/hp/Documents/unblock-hack/near-react/node_modules/parcel-bundler/src/transforms/babel/env.js:62:34)
    at getEnvConfig (/Users/hp/Documents/unblock-hack/near-react/node_modules/parcel-bundler/src/transforms/babel/env.js:12:25)
    at async getBabelConfig (/Users/hp/Documents/unblock-hack/near-react/node_modules/parcel-bundler/src/transforms/babel/config.js:32:19)
    at async babelTransform (/Users/hp/Documents/unblock-hack/near-react/node_modules/parcel-bundler/src/transforms/babel/transform.js:6:16)
    at async JSAsset.pretransform (/Users/hp/Documents/unblock-hack/near-react/node_modules/parcel-bundler/src/assets/JSAsset.js:83:5)

Environment

Node.js: v15.9.0
NPM: 7.5.3
System: MacOS Catalina 10.15.5

Looks like env-cmd is throwing this error. Here's the script from npm run start in package.json
env-cmd -f ./neardev/dev-account.env parcel src/index.html --open

Running this throws the same error. If I remove favicon.ico from index.html, it throws error for index.js


Implement UCI command "isready"

Codecov Report

Merging #57 (3925a5e) into main (8ff4ed1) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #57      +/-   ##
==========================================
+ Coverage   92.82%   92.85%   +0.02%
==========================================
  Files          41       43       +2
  Lines        5604     5625      +21
==========================================
+ Hits         5202     5223      +21
  Misses        402      402

Impacted Files
Coverage Δ

uci/src/uci_in/is_ready.rs
100.00% <100.00%> (ø)

uci/src/uci_out/ready_ok.rs
100.00% <100.00%> (ø)

uci/tests/uci.rs
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8ff4ed1...3925a5e. Read the comment docs.


IgnoreSourceColumnAdded as part of CLI execution

We're in a situation, where we have shared SQL views to multiple tabular models. This way we for instance have DimCustomer defined in one view and used in multiple different tabular models. In some of the models we only use a subset of the available columns. I have then learned that I can set the TabularEditor_IgnoreSourceColumnAdded as a annotation on the table level, but how about doing it on model level as part of execution the schema check through the CLI? Could this be possible?
Or another option could be to set severity on the different out comes of the check like with BPA rules:

Missing Source Column should give 3 (error)
Data Type Change should give 2 (warning)
Source Column Added should give 1 (information)

This is just my recommendation for the severity, but ultimately you should be able to set it at run time or as an annotation on the model level.

I'm hesitant to add more configuration/customization in this area, as it requires a lot of documentation and only solves a very small number of use cases. In your case, for example, a simple workaround could be to run a C# script before executing the schema check (this can be done in a single CLI call). The C# script would simply add the TabularEditor_IgnoreSourceColumnAdded annotation to every table of the model:
foreach(var table in Model.Tables) table.SetAnnotation("TabularEditor_IgnoreSourceColumnAdded", "1");

A word of advice, though: These warnings exist for a reason. When your source expression returns columns that are not imported into the tabular model, you are wasting network bandwidth, which could ultimately hurt your refresh times. For one or two columns, that's probably not important, but if you're only importing a few columns out of many, then you are needlessly transferring a lot of data over the wire... in that case, it would probably be better to use explicit SELECT-statements, or create additional views tailored specifically to each tabular model.

Thank you for the feedback! It's very valuable.