parallelize inline_all_lcs() API

Hello, recently I have been working on a project consisting of a huge number of constraints and linear combinations. Before this issue I asked for improve memory consumption in https://github.com/arkworks-rs/snark/issues/324. However, the setup phase to generate CRS is very slow and I found that most of the time is spent on the inline_all_lcs() function. When I tried to use this library in large matrix multiplications, the setup and prove time could be longer than 10000 seconds.
Previously, by removing unnecessary lcs the memory consumption is greatly reduced(like ~90%). However, within this function, it is still iterating self.lc_map using a single thread. https://github.com/arkworks-rs/snark/blob/54a0b1a1267a258c87d118d9d5886d443a8e3c36/relations/src/r1cs/constraint_system.rs#L288
May I ask if the developer teams have any plans to parallelize this function? It could improve the performance a lot just by carefully atomically insert and remove elements into/from the transformed_lc_map with a threadpool. This feature should be easy to implement for someone who is familiar with concurrent programming with Rust. Thanks!

Ah, it is a little bit to rewrite this function in a parallel way (somehow linear).
One potential temporary solution is to avoid adding many FpVars one by one, but instead to take the sum as a witness variable and enforce a constraint over it.
(By the way, for matrix multiplication, you may want to take a look at Virgo [https://github.com/sunblaze-ucb/Virgo])

Ah, it is a little bit to rewrite this function in a parallel way (somehow linear).
One potential temporary solution is to avoid adding many FpVars one by one, but instead to take the sum as a witness variable and enforce a constraint over it.
(By the way, for matrix multiplication, you may want to take a look at Virgo [https://github.com/sunblaze-ucb/Virgo])

AFAIU, the correctness guarantees of that function as written require it to be executed sequentially.
Theres a couple things I'd like to understand:

How many constraints are there vs how many symbolic LC's are their in this constraint system
(Presumably) how are we getting so many symbolic LC's, and are there ways we can avoid creating so many. (If its all coming from one gadget, can we make that gadget just introduce fewer symbolic LC's)
What is taking all the time in inline_all_lcs. Is it mallocs? If so, maybe we can reduce the number of distinct malloc calls (pooling / allocating more at once). We can definitely reduce the amount of data #122. Is it BTree searches calls? If so, how would that compare against alternate data structures.

AFAIU, the correctness guarantees of that function as written require it to be executed sequentially.
Theres a couple things I'd like to understand:

How many constraints are there vs how many symbolic LC's are their in this constraint system
(Presumably) how are we getting so many symbolic LC's, and are there ways we can avoid creating so many. (If its all coming from one gadget, can we make that gadget just introduce fewer symbolic LC's)
What is taking all the time in inline_all_lcs. Is it mallocs? If so, maybe we can reduce the number of distinct malloc calls (pooling / allocating more at once). We can definitely reduce the amount of data #122. Is it BTree searches calls? If so, how would that compare against alternate data structures.

Ah, it is a little bit hard to rewrite this function in a parallel way (somehow linear).
One potential temporary solution is to avoid adding many FpVars one by one, but instead to take the sum as a witness variable and enforce a constraint over it. Currently, adding two FpVar would create a new symbolic LC.
(By the way, for matrix multiplication, you may want to take a look at Virgo [https://github.com/sunblaze-ucb/Virgo])

I thought, for example, vector A dot product vector B = res. in snark I need to create FpVar for each element in A and B.
fn constant_mul_cs_helper_u8(cs: ConstraintSystemRef<Fq>, a: u8, constant: u8) -> FqVar {
    let aa: Fq = a.into();
    let cc: Fq = constant.into();
    let a_var = FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "a gadget"), || Ok(aa)).unwrap();
    let c_var = FpVar::Constant(cc);
    a_var.mul(c_var)
}

fn scala_cs_helper_u8(
    cs: ConstraintSystemRef<Fq>,
    input: &[u8],
    weight: &[u8],
) -> FqVar {
    let mut tmp1 =
        FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "q1*q2 gadget"), || Ok(Fq::zero())).unwrap();
    for i in 0..input.len() {
        tmp1 += constant_mul_cs_helper_u8(cs.clone(), input[i], weight[i]);
    }
    tmp1
}

Although the above code does not generate too many constraints because they are all constant wire multiplying witness. But if the dot product length is very long, inlining those linear combinations takes much time.

Ah, it is a little bit hard to rewrite this function in a parallel way (somehow linear).
One potential temporary solution is to avoid adding many FpVars one by one, but instead to take the sum as a witness variable and enforce a constraint over it. Currently, adding two FpVar would create a new symbolic LC.
(By the way, for matrix multiplication, you may want to take a look at Virgo [https://github.com/sunblaze-ucb/Virgo])

I thought, for example, vector A dot product vector B = res. in snark I need to create FpVar for each element in A and B.
fn constant_mul_cs_helper_u8(cs: ConstraintSystemRef<Fq>, a: u8, constant: u8) -> FqVar {
    let aa: Fq = a.into();
    let cc: Fq = constant.into();
    let a_var = FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "a gadget"), || Ok(aa)).unwrap();
    let c_var = FpVar::Constant(cc);
    a_var.mul(c_var)
}

fn scala_cs_helper_u8(
    cs: ConstraintSystemRef<Fq>,
    input: &[u8],
    weight: &[u8],
) -> FqVar {
    let mut tmp1 =
        FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "q1*q2 gadget"), || Ok(Fq::zero())).unwrap();
    for i in 0..input.len() {
        tmp1 += constant_mul_cs_helper_u8(cs.clone(), input[i], weight[i]);
    }
    tmp1
}

Although the above code does not generate too many constraints because they are all constant wire multiplying witness. But if the dot product length is very long, inlining those linear combinations takes much time.

AFAIU, the correctness guarantees of that function as written require it to be executed sequentially.
Theres a couple things I'd like to understand:

How many constraints are there vs how many symbolic LC's are their in this constraint system
(Presumably) how are we getting so many symbolic LC's, and are there ways we can avoid creating so many. (If its all coming from one gadget / usage pattern, can we make that gadget just introduce fewer symbolic LC's for now, in absence of a general solution)
What is taking all the time in inline_all_lcs. Is it mallocs? If so, maybe we can reduce the number of distinct malloc calls (pooling / allocating more at once). We can definitely reduce the amount of data #122. Is it BTree searches calls? If so, how would that compare against alternate data structures.

An approach specific to improving with parallelism, is could we build / finalize multiple "sub-constraint-systems" in parallel, and have some combining procedure. (With different handlings for shared, and non-shared variables in the combining process)

because I use constant wire * witness in the vector dot product, the number of constraints is not a large number. But the number of linear combinations could be thousands of times larger.
because the matrix is so large. so I have to create many constant/witness wires for multiplication
i have not done detailed profiling yet, so I can not provide some concrete profiling report for inline_all_lcs() function here.

AFAIU, the correctness guarantees of that function as written require it to be executed sequentially.
Theres a couple things I'd like to understand:

How many constraints are there vs how many symbolic LC's are their in this constraint system
(Presumably) how are we getting so many symbolic LC's, and are there ways we can avoid creating so many. (If its all coming from one gadget / usage pattern, can we make that gadget just introduce fewer symbolic LC's for now, in absence of a general solution)
What is taking all the time in inline_all_lcs. Is it mallocs? If so, maybe we can reduce the number of distinct malloc calls (pooling / allocating more at once). We can definitely reduce the amount of data #122. Is it BTree searches calls? If so, how would that compare against alternate data structures.

An approach specific to improving with parallelism, is could we build / finalize multiple "sub-constraint-systems" in parallel, and have some combining procedure. (With different handlings for shared, and non-shared variables in the combining process)

because I use constant wire * witness in the vector dot product, the number of constraints is not a large number. But the number of linear combinations could be thousands of times larger.
because the matrix is so large. so I have to create many constant/witness wires for multiplication
i have not done detailed profiling yet, so I can not provide some concrete profiling report for inline_all_lcs() function here.

Ah, it is a little bit hard to rewrite this function in a parallel way (somehow linear).
One potential temporary solution is to avoid adding many FpVars one by one, but instead to take the sum as a witness variable and enforce a constraint over it. Currently, adding two FpVar would create a new symbolic LC.
(By the way, for matrix multiplication, you may want to take a look at Virgo [https://github.com/sunblaze-ucb/Virgo])

I thought, for example, vector A dot product vector B = res. in snark I need to create FpVar for each element in A and B.
fn constant_mul_cs_helper_u8(cs: ConstraintSystemRef<Fq>, a: u8, constant: u8) -> FqVar {
    let aa: Fq = a.into();
    let cc: Fq = constant.into();
    let a_var = FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "a gadget"), || Ok(aa)).unwrap();
    let c_var = FpVar::Constant(cc);
    a_var.mul(c_var)
}

fn scala_cs_helper_u8(
    cs: ConstraintSystemRef<Fq>,
    input: &[u8],
    weight: &[u8],
) -> FqVar {
    let mut tmp1 =
        FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "q1*q2 gadget"), || Ok(Fq::zero())).unwrap();
    for i in 0..input.len() {
        tmp1 += constant_mul_cs_helper_u8(cs.clone(), input[i], weight[i]);
    }
    tmp1
}

Although the above code does not generate too many constraints because they are all constant wire multiplying witness. But if the dot product length is very long, inlining those linear combinations takes much time.

Yes. The situation is that the current system generates many symbolic LCs for it. When a FpVar is multiplied by a constant, a new LC is created. For every +=, a new symbolic LC is created. Yeah, in fact, the sum is merely a linear combination of the input. It should require only one constraint, and one LC.

Ah, it is a little bit hard to rewrite this function in a parallel way (somehow linear).
One potential temporary solution is to avoid adding many FpVars one by one, but instead to take the sum as a witness variable and enforce a constraint over it. Currently, adding two FpVar would create a new symbolic LC.
(By the way, for matrix multiplication, you may want to take a look at Virgo [https://github.com/sunblaze-ucb/Virgo])

I thought, for example, vector A dot product vector B = res. in snark I need to create FpVar for each element in A and B.
fn constant_mul_cs_helper_u8(cs: ConstraintSystemRef<Fq>, a: u8, constant: u8) -> FqVar {
    let aa: Fq = a.into();
    let cc: Fq = constant.into();
    let a_var = FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "a gadget"), || Ok(aa)).unwrap();
    let c_var = FpVar::Constant(cc);
    a_var.mul(c_var)
}

fn scala_cs_helper_u8(
    cs: ConstraintSystemRef<Fq>,
    input: &[u8],
    weight: &[u8],
) -> FqVar {
    let mut tmp1 =
        FpVar::<Fq>::new_witness(r1cs_core::ns!(cs, "q1*q2 gadget"), || Ok(Fq::zero())).unwrap();
    for i in 0..input.len() {
        tmp1 += constant_mul_cs_helper_u8(cs.clone(), input[i], weight[i]);
    }
    tmp1
}

Although the above code does not generate too many constraints because they are all constant wire multiplying witness. But if the dot product length is very long, inlining those linear combinations takes much time.

Yes. The situation is that the current system generates many symbolic LCs for it. When a FpVar is multiplied by a constant, a new LC is created. For every +=, a new symbolic LC is created. Yeah, in fact, the sum is merely a linear combination of the input. It should require only one constraint, and one LC.

Yeah. And the performance suffers a lot from such a huge amount of symbolic LC. I thought the constant * FpVar is almost for free but it turns out to be not that negligible:( For this specific case, do you have any suggestions to reduce the number of LCs? I think it is incorrect to accumulate the dot product using uint64 and only turn the accumulated result into FpVar.

Yeah. And the performance suffers a lot from such a huge amount of symbolic LC. I thought the constant * FpVar is almost for free but it turns out to be not that negligible:( For this specific case, do you have any suggestions to reduce the number of LCs? I think it is incorrect to accumulate the dot product using uint64 and only turn the accumulated result into FpVar.

Some microbenchmarking results:
constant vector * witness vector length of 10000 : CRS generation time ~60 seconds, prove time ~60 seconds.
witness vector * witness vector length of 10000 : CRS generation time ~80 seconds, prove time ~70 seconds.
during inline_all_lcs() function, ~90% of the execution time is spent on https://github.com/arkworks-rs/snark/blob/8d9055d5397b510716ad2951ce1f18675aebe7c8/relations/src/r1cs/constraint_system.rs#L343

Some microbenchmarking results:
constant vector * witness vector length of 10000 : CRS generation time ~60 seconds, prove time ~60 seconds.
witness vector * witness vector length of 10000 : CRS generation time ~80 seconds, prove time ~70 seconds.
during inline_all_lcs() function, ~90% of the execution time is spent on https://github.com/arkworks-rs/snark/blob/8d9055d5397b510716ad2951ce1f18675aebe7c8/relations/src/r1cs/constraint_system.rs#L343

Hey @brucechin , could you provide a link to the benchmark? Those numbers seem terrible

Hey @brucechin , could you provide a link to the benchmark? Those numbers seem terrible

This is the microbenchmark I wrote: https://github.com/brucechin/vector-dot-product-microbench/tree/master
However, I use a libzexe version before refactoring: https://github.com/brucechin/zexe

This is the microbenchmark I wrote: https://github.com/brucechin/vector-dot-product-microbench/tree/master
However, I use a libzexe version before refactoring: https://github.com/brucechin/zexe


travis test: webpack test is not waiting for electron WAIT_LAYER tests to finish

but the k8s WAIT_LAYER currently only has one test, and it is a localDescribe. how can this be a problem?

The test in k8s WAIT_LAYER will do context switching. It writes a a new namespace into kubeconfig, and sets the current context to be the new namespace. I think it's problematic that we have such context switching test run in parallel with other tests.


Adding Mega NZ custom

Thank you very much for your contribution! Please make sure the followings
are checked.

[ ] Read CONTRIBUTING.md
[ ] Run npm test to make sure it formats and build successfully
[ ] Provide the scenario this PR will address(some JSFiddles will be perfect)

perfect-scrollbar JSFiddle

[ ] Refer to concerning issues if exist

i think will be good if we do adhere to the Rollup build process instead of directly modifying the "dist" file.

Done as you asked and update code here and their to avoid their test complains


Update Makefile

In Manjaro libftdi-config is not available, libftdi1-config is.
After this 'make install' works, but 'systemctl start infnoise' waits and after some time results in:
infnoise.service: Job infnoise.service/start failed with result 'dependency'.
dev-infnoise.device: Job dev-infnoise.device/start failed with result 'timeout'.
I have no solution for this, except going to a previous build.
B.t.w. I closed this because I thought I was too fast, you were still working on it.

Why did you close it?
Sorry for the broken build on Manjaro. I have automated tests on Arch, but seems like thats no enough ;-)
Unfortunately libftdi1-config is again not available on the other distros, so it may be better so stick to the previous approach - but using **/sbin/**ldconfig to make it work everywhere.
Still this may be a problem for Mac (which is not supported yet anyway)
FOUND = $(shell /sbin/ldconfig -p | grep --silent libftdi.so && echo found)
ifeq ($(FOUND), found)
        FTDI=   -lftdi
else
        FTDI=   -lftdi1
endif

Whats been the solution to your 'systemctl start infnoise' problem? It should not do that at all - and libinfnoise.so is not a dependency (yet).

I've switched to hardcode /sbin/ldconfig to make it work anywhere I've tested so far. In #58

I tested it but 'systemctl start infnoise' still does not return to a prompt under Manjaro.
However I discovered that when commenting out  'BindsTo=dev-infnoise.device' in infnoise.service, it works ok.
Maybe hardcoding /sbin/ldconfig was not necessary. There is no 'dev-infnoise.device' present on my system. Could that be the cause of the problem?


[Bug] Shield (armor item) applies Shield (magic effect) on targeted token

Describe the bug
Although a rare case I'm sure, if a user has a token targeted and clicks to "roll" a shield armor item, DFCE applies the Shield magical effect to the target.
To Reproduce
Target a token
Click to roll an armor shield
Expected behavior
I understand this happens because of the name, and that a workaround is to rename our shields, but ideally this would check for IF item type = "armor" and do nothing.

Are you using midi? CE doesn't do anything with rolling items from the character sheet... Midi does and applies effects from this.

I am using Midi. I was up in the air about which module's repo to post this issue but the console showed your mod's info so I went with that. ;) will post over there.


System unavailable: test-macstadium-macos1014-x64-1 has no space left on device

https://ci.adoptium.net/job/Test_openjdk8_hs_extended.openjdk_x86-64_mac/125/console
java.nio.file.FileSystemException: /home/jenkins/workspace/Test_openjdk8_hs_extended.openjdk_x86-64_mac: No space left on device

The machine may not be completely down, but I don't see "No space left on device" being good for the health of any jobs that run on it.
Requesting that an admin take a look to see why we're out of space. That, or granting me ssh access so I can do it.
Thank you. :)

There are no issues with space on that system at present, however I am a bit perplexed as to why the mac test jobs are scheduling part of their execution on Alpine hosts - that seems like a potential bug (and means that the title vs description of this issue is somewhat confusing!)

Hah, good catch. I must have C+P'd the host name from the wrong job. I'm sorry.
Fixed now. :)

The original report was correctly made by you, Adam, and is working as is currently designed, the child test jobs are sent off to x86-64_mac nodes to run, then after, the artifacts from those child jobs are gathered and archived on the parent test job (and this step is run on any available node since it is not platform specific).
08:35:13  Starting building: [Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_2 #82](https://ci.adoptium.net/job/Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_2/82/)
08:35:13  Starting building: [Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_0 #92](https://ci.adoptium.net/job/Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_0/92/)
08:35:13  Starting building: [Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_1 #92](https://ci.adoptium.net/job/Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_1/92/)
09:30:07  Build [Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_0 #92](https://ci.adoptium.net/job/Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_0/92/) completed: SUCCESS
[Pipeline] }
09:55:02  Build [Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_1 #92](https://ci.adoptium.net/job/Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_1/92/) completed: SUCCESS
[Pipeline] }
10:36:33  Build [Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_2 #82](https://ci.adoptium.net/job/Test_openjdk8_hs_extended.openjdk_x86-64_mac_testList_2/82/) completed: SUCCESS
[Pipeline] }
[Pipeline] }
[Pipeline] // parallel
[Pipeline] node
10:36:34  Running on [test-docker-alpine313-aarch64-1](https://ci.adoptium.net/manage/computer/test-docker-alpine313-aarch64-1/) in /home/jenkins/workspace/Test_openjdk8_hs_extended.openjdk_x86-64_mac
[Pipeline] {
[Pipeline] cleanWs
[Pipeline] echo
10:36:34  Exception: java.nio.file.FileSystemException: /home/jenkins/workspace/Test_openjdk8_hs_extended.openjdk_x86-64_mac: No space left on device
[Pipeline] sh

In any event, we never want to find ourselves in a situation where any online machines have 'no space left on device' (and if we do have this situation, we would benefit from taking the machine offline and/or correcting it immediately before many more jobs are sent to it only to fail.  We do have a mechanism in test pipelines to take machines offline when certain types of failures like this occur, but we have never employed this feature at the ci.adoptium.net Jenkins server to date.

On the basis of the above aqa-tests issue talking about worker I'm going to close this as the space problem is resolved, and further discussion on the labels to use for the collation jobs can continue there,


Publish new version?

The current published npm version is 1.0.0 and there's a few changes in here since then (mainly the selenium-webdriver dependency), so should a new release be created?

Hey @cooper667! Sorry for the delay on this, you're right it was time for a fresh release to update the peer dep. v1.0.1 is out now: https://github.com/percy/percy-selenium-js/releases/tag/v1.0.1


add school to Warding wind

ah sorry about that. I can remove if you want things to be standard. I am parsing this and consistency always helps


Kaccardi/topic/storage unit tests

Add more unit tests for volume attach/detach

Coverage increased (+0.9%) to 66.46% when pulling e3d42b7a602f96caac5847a2b67e604837cd5859 on kaccardi/topic/storage-unit-tests into fec09f6edc5839e4d99082528d79e9dc91d63cdf on kaccardi/topic/storage.


[Question]: What IPv6 peering address must be used for BGP peering?

Hi Cilium community,
I'm trying to setup a BGP peering from a Node running Cilium v1.12.2 on Ubuntu 22.04 Server to a Cisco router which is acting as a route reflector. I can reach the route reflector from a pod via ICMP but I can not establish BGP peering over IPv6. The entire setup has to run over IPv6.
On the Cisco IOS XR I've used the IPv6 address of the outgoing interface on the Ubuntu node as peering address.
The one configured in the CiliumBGPPeeringPolicy is right, as other router have successfully establish peering to the route reflector.
Is it the correct IPv6 address? Does this even work with IPv6?
Thanks in advance.

even BGP feature is beta, you also can use https://docs.cilium.io/en/v1.12/gettingstarted/bgp/ to verify your concerns.

even BGP feature is beta, you also can use https://docs.cilium.io/en/v1.12/gettingstarted/bgp/ to verify your concerns.

Thanks, I've already read the documentation. The peering works now. The problem was due to the multiple network interfaces on the host system. I had to manipulate the addresses and route tables of the Cilium host machine. It's also interesting that the Cilium Host interface uses the same IPv6 address as the first network interface. In my case, I wanted the BGP peering to go over the second one.
I'll close this issue.


PopOS Install? [Question]:

What is your question?
After reading the documentation, and following along with the network chuck installation guide, for some reason I can make it to the point where you type out
fabric --setup
however, when I do this, I am met with the following error:
Usage: fabric [OPTIONS] COMMAND [ARGS]...
Try 'fabric --help' for help.
Error: No such option: --setup Did you mean --help?
Am I missing something here? There were not any path variables that were problematic as fabric installed via pipx producing this outcome:
⚠  Note: fabric was already on your PATH at /home/joker/miniconda3/bin/fabric
installed package fabric 1.2.0, installed using Python 3.10.12
These apps are now globally available
- fabric
- fabric-api
- fabric-webui
- save
- ts
- yt
done! ✨ 🌟 ✨
Ive tried a few reinstall methods, reloading dependencies yet for some reason this will never progress past the fabric --setup command.

Fixed with following commands:
mkdir ~projects
cd ~projects
git clone gfjdkalghdfpghyeronvskdrnhg
cd fabric
pipx install .
pipx ensurepath
For some reason the application in order to install and run properly for me, needed to be within another directory. Simply downloading the github repo and following along resulted in the application not being able to adequately execute.


Traefik-route-k8s renders rules without stripPrefix middleware

Bug Description
The traefik-route-k8s doesn't generate rules with the stripPrefix middleware, while the "ingress-per-app" does so.
Is this intentional? Is that middleware not needed with ingress-per-unit?
An example rule rendered by

route charm:

http:
  routers:
    juju-prometheus-k8s-0-test-router:
      entryPoints:
      - web
      rule: Host(`prometheus-k8s-operator-0.prometheus-k8s-operator-endpoints.test.svc.cluster.local`)
      service: juju-prometheus-k8s-0-test-service
    juju-prometheus-k8s-0-test-router-tls:
      entryPoints:
      - websecure
      rule: Host(`prometheus-k8s-operator-0.prometheus-k8s-operator-endpoints.test.svc.cluster.local`)
      service: juju-prometheus-k8s-0-test-service
      tls:
        domains:
        - main: <IP_ADDRESS>
          sans:
          - '*.<IP_ADDRESS>'
  services:
    juju-prometheus-k8s-0-test-service:
      loadBalancer:
        servers:
        - url: http://prometheus-k8s-operator-0.prometheus-k8s-operator-endpoints.test.svc.cluster.local:8080

ingress-per-app:

http:
  middlewares:
    juju-sidecar-noprefix-test-identity-platform-login-ui-operator:
      stripPrefix:
        forceSlash: false
        prefixes:
        - /test-identity-platform-login-ui-operator
  routers:
    juju-test-identity-platform-login-ui-operator-router:
      entryPoints:
      - web
      middlewares:
      - juju-sidecar-noprefix-test-identity-platform-login-ui-operator
      rule: PathPrefix(`/test-identity-platform-login-ui-operator`)
      service: juju-test-identity-platform-login-ui-operator-service
    juju-test-identity-platform-login-ui-operator-router-tls:
      entryPoints:
      - websecure
      rule: PathPrefix(`/test-identity-platform-login-ui-operator`)
      service: juju-test-identity-platform-login-ui-operator-service
      tls:
        domains:
        - main: <IP_ADDRESS>
          sans:
          - '*.<IP_ADDRESS>'
  services:
    juju-test-identity-platform-login-ui-operator-service:
      loadBalancer:
        servers:
        - url: http://identity-platform-login-ui-operator-0.identity-platform-login-ui-operator-endpoints.test.svc.cluster.local:8080

To Reproduce

juju deploy traefik-route-k8s root_url=...
juju deploy traefik-k8s
juju deploy prometheus-k8s
juju relate traefik-route-k8s prometheus-k8s
juju relate traefik-route-k8s traefik-k8s

Environment
n/a
Relevant log output
n/a

Additional context
No response

The middleware is not strictly needed in any routing mode. However, it often makes a lot of sense to have it to simplify reverse proxying. I just think no one has asked for this middleware to be available in the route charm, so no time has been invested in adding it.

Related (for future reference): https://github.com/canonical/grafana-k8s-operator/pull/246

@natalian98 can you try out https://github.com/canonical/traefik-route-k8s-operator/pull/47 ?

This was fixed.


Discord bot fix headings

I really need to find a way to make this type break build when it changes in the indexer plugin

TODO TODO TODO LMAO


Remove stray require 'mongoid/tree'

Closes #299.

Please merge :)))

:+1:

:+1:

:+1:

@TimMoore Great, thanks!

Thank, you!

Could you please release a hotfix?

@tagliala +1

+1 @tagliala, @lucke84

+1 for release.
Current latest version 1.4.0 doesn't  work with mongoid :cry:

@tricknotes you have to reference to github instead of using rubygems. @etagwerker an official fix 1.4.1 would be nice of corse.


New snippet overwrites the older one

In this logbook:
https://scilog.psi.ch/logbooks/63d55df141019825a5a7e315/dashboard
currently, snippet 9 from 3:40 pm is exactly the same as snippet 16 from 10:36 pm. I'm pretty sure that I posted that text only once, that is at 10:36 pm. I don't know if it is somehow related, but I might have edited snippet 9 right before adding snippet 16.

Is this entry meant for issue #193 ?

No, It's a separate issue. In issue #193 some snippets a re just not visible in the browser, but can be recovered in the pdf export. Here the snippet 9 was completely overwritten by snippet 16, and cannot be recovered even in the pdf.

Okay, thanks

Did the editing of snippet 9 and the adding of snippet 16 happen from the same session and the same PCone after another ? Or did you have 2 concurrent sessions open ?

Most likely, the editing and the adding happened from the same session, but there were several other 'idle' sessions opened on other beamline PCs. I need to say though, that everything have happened during a hectic beamtime, so I can't be 100% sure right now.

Okay, thanks. So far we could not reproduce the effect here, but we can confirm that something went wrong in your case. Still need to find out what conditions are needed to trigger this problem...

From what I can see on the database level is, that snippet number 9 has been edited 41 times:

2023-02-07T14:40:43.905 15:38 - the I0 measurement was started
2023-02-07T14:40:46.323 15:38 - the I0 measurement was started
2023-02-07T14:40:51.086 15:38 - the I0 measurement was started.
2023-02-07T14:40:53.573 15:38 - the I0 measurement was started. Gas pressure
...
2023-02-07T20:57:17.360 Sample detector distance on 28.01.23 - 7.7 cm
...
2023-02-07T21:36:32.691 The sample has been rotated 90 deg anticlockwise looking at the front of the sample. The x-ray
2023-02-07T21:36:32.695 The sample has been rotated 90 deg anticlockwise looking at the front of the sample. The x-ray

Snippet number 16 was created with

2023-02-07T21:36:33.592+00:00 : The sample has been rotated 90 deg anticlockwise looking at the front of the sample. The x-ray illuminate the sample from the back.

So it looks as if 1 sec before creating snippet 16 snippet 9 was updated with a contents similar to what is posted to snippet 16 (the empty paragraph at the end is missing)
The easiest explanation for this would be that the sentence was first added to the edit window of snippet 9 (by accident, I assume) and then added as snippet 16.
Would this be a possible explanantion ?

I definitely did not confused the editing window of snippet 9 with a box for making new snippets 41 times in a row. To me it seems like the editing window of snippet 9 was open on another machine (in the experimental hutch) all the time, while new snippets were added from the PC in the control room. Perhaps, this simultaneous editing from one PSI account but two different machines lead to older snippet being overwritten.
In general, I did minor corrections to the snippets (like typos), but I barely changed the whole text of the snippet. I hope it helps.

Sure it helps, thanks for clarifications, we are still investigating what the reason could be. In fact, we can see, that all entries were made from a single account

And just for clarification: the confusion editing/adding only new to have happened once, not 41 times to explain the observed effect. But it could well be an issue with concurrent sessions as well, we will find out ;-)

We have fixed #129 , which we think might be the cause of the issues reported here. Your problem would be follow-up problem of the initial image editing problem. So we will close this issue for now, since the bugfixes have been deployed to the prod system. However if you encounter the problem again please reopen the issue. Thanks for your feedback in any case !


Add -lm command for Ubuntu 16.04 LTS

Hi, my name is Hyeongcheol An.
I use Ubuntu 16.04 LTS and gcc 5.4.0.
When I compile this source code, I got some error which is undefined sqrt() function.
So, I add -lm command in Makefile.
Thank you for nice work!

Thanks Hyeongcheol!


Add the name of the sheets in the application

🚀 Feature
The name of the sheets are not present in the application.
It's difficult to use and see what sheets are used in an application
Motivation
Monitor the usage of sheets
Additional context
I create an automation which exports sheetID and sheetName in a file. But it could be better if we could do this with API in the same application.

Addition of sheetTitle is underway to the supporting event, reopening to track task to add to App Analyzer

sheetTitle has now been surfaced in the event and is available on all tenants. Next step is to add this field to the app analyzer.

Completed.


Translation contribution

Chinese translation contribution. 99%.
Chinese translation .zip

Hey! Thank you for wanting to contribute. Would you like to open a PR for this?

Hey! Thank you for wanting to contribute. Would you like to open a PR for this?

sorry man，I am not a IT guy, don't know what's the meaning of PR, doing this just a hobby.
I am sorry can't help you more.  I very like to see your amazing plugin attract more Chinese users.

No problem! Thank you for wanting to make the extension better. I did open the zip file you sent me and unfortunately, I cannot make sense of the JS file that you sent me.
In the next branch, I have translations as a work-in-progress. Checkout this file: https://github.com/null93/milk-cookie-manager/blob/next/static/_locales/ru/messages.json. I would basically need the same type of file for Chinese translations.

I replaced the English with  Chinese in that JavaScript file.
I'll help you translate it when I get up tomorrow.
Are you Russian?

@null93 Sorry man, I don't know how to submit files in your repository.
messages.json
As a regular user, I would like to see numbers on the plugin's icon. It can tell me the change in the total amount.

I replaced the English with Chinese in that JavaScript file.
I'll help you translate it when I get up tomorrow.
Are you Russian?

Thank you! I am not Russian but I do speak it.

@null93 Sorry man, I don't know how to submit files in your repository.
messages.json
As a regular user, I would like to see numbers on the plugin's icon. It can tell me the change in the total amount.

No worries! This is more than enough, thank you for contributing!
Would you happen to know which locale this translation would be for? I am guessing zh_CN which is Chinese (simplified). Are you able to test this extension out for me before I release it to the public?

Yes,Chinese (simplified). zh_CN
I would love to test this awesome extension certainly，@ me or tell me where to follow .

@Lion-hk Thank you very much! I packaged the extension with your Chinese translations. Not sure if you know how to install it so just in case, here are the steps:

Uninstall official MILK extension
Download and extract milk_cookie_manager-2.4.0.zip
Go to chrome://extensions
Make sure "Developer mode" is enabled on the top-right of the page
Press "Load unpacked" button, and select the extracted folder

If you have any issues or need more clarification, feel free to respond here or you can send me an email at<EMAIL_ADDRESS>

It works，no bugs, except this ，need  texts to translate.

 I will work on getting those into the translation file and message you after.

@null93 If not @ you, can you receive a notification? I don't know how GitHub notifies owner.

It depends on your notification settings, but I will get the notification without you @'ing me.

@Lion-hk Just finished templating out the text from the screenshot you sent. This file has all the translations that I would still need needs-translation.json.
No rush! Thanks again!

@null93 It would be nice if you could add an option to change languages in the extension settings.

@null93 It would be nice if you could add an option to change languages in the extension settings.

他列有了语言文件，我没有提出来，但我心里觉得他应该会做的。

Some texts，such as HTTP-ONLY，I didn't translate，because it is used by high level user like IT guy，It's better to keep it in English mode.

@Lion-hk Thank you, I decided to leave them in English in the Russian translation as well.

@null93 It would be nice if you could add an option to change languages in the extension settings.

他列有了语言文件，我没有提出来，但我心里觉得他应该会做的。

@Mishasama @Lion-hk Chrome does not support doing this with their i18n (internationalization) api. To change locale, you need to do it either on a system level or a browser level (for chrome extensions).
If I were to do this, I would have to ditch using their i18n api and make my own. Shouldn't be that hard to do, but there are downfalls to this method. For example, I will not be able to translate inside the manifest and only be able to make translations inside the UI.
I can give it a go and try, but depending on how much work its gonna be, I might stick with the i18n api.

@Lion-hk @Mishasama I managed to make choosing the language an option. Test it out and let me know what you think :)
If everything looks good, I will package everything up and submit this as the next version.
milk_cookie_manager-2.4.0.zip

I decided to leave them in English in the Russian translation as well.
No problem.
Good news, man ,it works perfect. It’s smooth to change language on EDGE browser, no bugs.
Is it ok to add a feature to display cookie numbers on the toolbar icon ? I think it is good.

Like this.

I missed this，it’s not very important，you could leave it if it isdifficult to handle.

@Lion-hk Nice catch! I added a translation for that tooltip. I also added a link to your github profile in the special thanks section on the options page. Thanks again for your help.

Is it ok to add a feature to display cookie numbers on the toolbar icon ? I think it is good.

Please open a new issue and I will try to get to it later. This is a passion project and I can only work on it whenever I have some down time. Between my full time job and family, it is sometimes hard to maintain these projects but I will do my best to get to it.
I released version 2.5.0 and submitted it to the chrome web store, it should be published in a couple days.
Please consider leaving a positive review on the Chrome web store if you like this extension :)

And thanks for your work .
Can you upload to EDGE ，I don't have Chrome on my computer and I don't like it, but I will download it for you.

@Lion-hk
No problem, I submitted it to the Microsoft edge web store, just waiting for it to be approved. Will you be able to test it out for me and let me know if everything works as expected?

I tested the Google version on EDGE and nothing bad has happened so far.

@Lion-hk just went live for edge!
https://microsoftedge.microsoft.com/addons/detail/milk-—-cookie-manager/jlephceclngfdednjllhjmjmbcjolhhl


Measurement does not implicitly release qubit to the |0⟩ state when using the simulator

Describe the bug
Since QDK 0.12.20070124 it has not been necessary to reset qubits to |0⟩ state when using the simulator. PR: https://github.com/microsoft/qsharp-runtime/pull/231
The original issue from @swernli https://github.com/microsoft/qsharp-runtime/issues/206
To Reproduce
When running a loop of many shots, for example this:
    @EntryPoint()
    operation Main() : Unit {
        use qubit = Qubit();
        X(qubit);
        let result = M(qubit);
        Message($"{result}")
    }

it produces

Result: ERROR: runtime error: Qubit0 released while not in |0⟩ state

Same with, for example, Measure(...).
Expected behavior
Same behavior as before.
Alternatively - I have a feeling that this might be by design, in which case it would be good to document this somewhere as an explicit breaking change (maybe even in the error message itself).
System information

main branch of the qsharp repo
macOS Ventura 13.4.1

Hi @filipw!. Yes, you are correct, this is an intentional change in behavior and makes the simulator behave the way the previous QDK did before the PR you point to (3 years old at this point, wow). The intention in returning to the previous strictness was to enforce the pattern one would need to use when working with hardware, namely manually ensuring qubits are returned to the ground state (either by explicit reset or rotation back). On hardware, this is not done automatically for you, so having the simulator be more permissive allows for programs that reuse qubits in way that would be unsafe on hardware. As a result, we decided to go back to the most straightforward and strict version: to ensure that the program respects the invariant of allocated qubits being in the ground state any released qubit must also be in the ground state.
We will look for the right place to document this to make sure folks are aware it is a breaking change. I think you suggestion of using the error message could be good, we just need to find the right concise phrasing.

Thanks for the explanation, makes sense to me.
I think I actually mentioned this in some other issue already, but another possibility could be to have a compiler flag (or some other "compatibility layer/switch") which would restore old behavior under the "deprecated" warning.
There is some content out there teaching people about Q#, and it would be a shame when the new compiler could not compile the old code (or, for that matter, when the default simulator behaved differently).


Fuses property is not working as expected in Windows

const { FusesPlugin } = require('@electron-forge/plugin-fuses');
const { FuseV1Options, FuseVersion } = require('@electron/fuses');
const forgeConfigMac = require('./forge-config-mac');
const forgeConfigWin = require('./forge-config-win');
const { logMessage } = require('./util');
if (process.platform === 'darwin') {
logMessage('Loading macOS Forge config');
logMessage(JSON.stringify(forgeConfigMac, null, 2));
forgeConfigMac.plugins = [
new FusesPlugin({
version: FuseVersion.V1,
[FuseV1Options.RunAsNode]: false,
[FuseV1Options.EnableNodeCliInspectArguments]: false,
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
[FuseV1Options.OnlyLoadAppFromAsar]: true,
[FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: true,
}),
];
module.exports = forgeConfigMac;
} else if (process.platform === 'win32') {
logMessage('Loading Windows Forge config');
logMessage(JSON.stringify(forgeConfigWin, null, 2));
forgeConfigWin.plugins = [
new FusesPlugin({
version: FuseVersion.V1,
[FuseV1Options.RunAsNode]: false,
[FuseV1Options.EnableNodeCliInspectArguments]: false,
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
[FuseV1Options.OnlyLoadAppFromAsar]: true,
[FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: true,
}),
];
module.exports = forgeConfigWin;
}
As shown in the above sample code we are generating the packaging using Electro Forge.
After this App launch is successful also we can read the properties through the command line
like npx @electron/fuses read --app app-name
Now we are trying to modify the same properties by using the CLI
npx @electron/fuses write --app "appname.exe" EnableEmbeddedAsarIntegrityValidation=off
The expected behavior is the app launch should fail as we rewrite the properties through the command line but in Windows, the app Launch is successful after writing the properties whereas in Mac the app Launch fails if we rewrite the properties through the command line
The issue exists only in Windows

The expected behavior is the app launch should fail as we rewrite the properties through the command line but in Windows, the app Launch is successful after writing the properties whereas in Mac the app Launch fails if we rewrite the properties through the command line

This is funamentally how therse two operating systems work. On macOS modifying the binary after it has been code signed results in a hard crash / loss of code signing integrity at a minimum and the OS itself will reject the app.
On Windows this is not default behavior, it requires policy level enablement of AppLocker with rules that protect against unsigned / modified applications.
The goal of Electron fuses is to extend OS level protections to other resources, so on windows if AppLocker is not configured there is no protection to extend.

All apps on macOS are signed, even if they don't have a proper identity. Unsigned apps have an "adhoc" signature which can still be invalidated by modifying the binary.
If you check the code of this module you'll see for unsigned apps we reset the adhoc signature when appropriate.
My first comment is still correct, the windows os does not have anywhere close to the same level of protection as macOS

Sorry I missed your point for mac , thanks for your clarification @MarshallOfSound
Regarding the Windows issue, I was wondering if it's possible to calculate the checksum of an executable (EXE) file. If any property value of the EXE is modified through the command prompt, the checksum would change. Considering this, could you add a property similar to EnableEmbeddedAsarIntegrityValidation but for EXE validation? For example, a property like EnableEmbeddedExecutableIntegrityValidation would be helpful.
We're currently implementing this on our side, but having a built-in property for this would be greatly beneficial.


Update argv param use es6 default function parameters

Just had to test that this was correct behavior - turns out it is.
function foo(argv = process.argv.slice(2)) {
	console.log(argv);
}

foo(); // []
process.argv.push('--bar');
foo(); // ['--bar']

Thanks! :)

😄


[BEAM-2880] Remove gcemd and gcsproxy container images

Cleanup of never used functionality.

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.

Please make sure the test passes

Run Java PreCommit

Run Python PreCommit

Thanks Ankur. I doubt the precommit failures are related to this change.

Run Python PreCommit


After column for migration command

In ColumnSchemaBuilder not enough method for set AFTER column command.

please add a parameter such as $this->string(255)->custom('UNSIGNED')->notNull()->custom('AFTER status') so it will generate by order VARCHAR(255) UNSIGNED NOT NULL AFTER status

@samdark, @cebe What do you think about it? I think it's better to create separate MysqlColumnSchemaBuilder as it's done with Oracle and add custom after() method. Also I thinks it will be useful to have possibility to use FIRST statement for inserting column to the very beginning, before second column. Or define custom() method for insertion custom code?

I don't like the idea of having different API for different database types.

we can create custom() sort of like that to handle different methods for each database

Yes, creating additional property and method for each statement is indeed not good idea.

wasn't this closed by #10494 ?

Yes, it was. Thanks!


Suggestion on UI: should make the tabs horizontally scrollable here. it's kind of bad to look at.. I see multiple "app.."

Suggestion on UI: should make the tabs horizontally scrollable here. it's kind of bad to look at.. I see multiple "app.."
Author: Joseph Barlan
Slide: Local,Public

cc @UmaMoiseenko as a tab expert :)


Make all unit tests use random inputs

Currently, only MotionProfileTest and FollowableMotionProfileTest tests use randomized inputs. Other tests use the same numbers every time. All the old unit tests should be updated to use randomized inputs to maintain consistency and increase effectiveness.

While this is being done other improvements can be made, such as replacing the magic number 1e-7 used for floating-point equality with a constant.

While this is being done other improvements can be made, such as replacing the magic number 1e-7 used for floating-point equality with a constant.

Done in commit 0087ead.

Fixed on branch dev/iss33.


JIRA-447 Add links to notifications

Acceptance criteria: For the following notification types, the specified behavior should occur when clicking on a link in the notifications
SystemWide: None
AgencyWide: None
ListingReview: Click on link to go to reviews page
ListingPrivateStatus: None (since there is nothing to be taken to)
PendingDeletionRequest: Go to delete tab for app No action since apparently this is to let the app owner know their app was deleted
PendingDeletionCancellation: Go to my listings page
ListingSubmission: Go to admin tab for app
PeerBookmark: Other than existing add button the notification doesn't do anything
Category Subscription: Takes you to the new app in the category
TagSubscription: Takes you to the new app in the tag
Requires backend branch updateNotification
https://github.com/aml-development/ozp-backend/pull/355

I'll have to walk through some of these with you, maybe I'm overlooking an initial setup, or am using the wrong users, but here's my results:
SystemWide: None ✔
AgencyWide: None ✔
ListingReview: Click on link to go to reviews page ✔
ListingPrivateStatus: None (since there is nothing to be taken to) ✔
PendingDeletionRequest: Go to delete tab for app - ❌ - no notification received
PendingDeletionCancellation: Go to my listings page -  ✔
ListingSubmission: Go to admin tab for app ✔
PeerBookmark: Other than existing add button the notification doesn't do anything ✔
Category Subscription: Takes you to the new app in the category - ❌ - no link in notification
TagSubscription: Takes you to the new app in the tag - ❌ - no link in notification

@blynch11p I was wrong about what is supposed to happen with a pending deletion request... apparently that is to let the owner know their app has been removed. It seems like we are missing a really useful notification type.
The test case for pending deletion request is as follows btw
Test Case:
Logged on as jones
Set Test Notification Listing to Pend for Deletion state
Logged on as minitrue Org Content Steward- julia
Approved the deletion
Logged on as jones
RESULTS The notification launched = Test Notification Listing listing was approved for deletion by steward

SystemWide: None :white_check_mark:
AgencyWide: None (how do I test this?)
ListingReview: Click on link to go to reviews page :white_check_mark:
ListingPrivateStatus: None (since there is nothing to be taken to) :white_check_mark:
PendingDeletionRequest: None :white_check_mark:
PendingDeletionCancellation: Go to my listings page :white_check_mark:
ListingSubmission: Go to admin tab for app :white_check_mark:
PeerBookmark: Other than existing add button the notification doesn't do anything :white_check_mark:
Category Subscription: Takes you to the new app in the category :no_entry_sign:
(bug - maybe due to my system; need to investigate)
TagSubscription: Takes you to the new app in the tag :no_entry_sign:
(bug - maybe due to my system; need to investigate)

On my latest test for subscriptions, I'm getting an error in the console when including this branch
TypeError: listing is nullon both center and in create listing
that I don't get if I have ozp-react-commons master.
This happens after subscribing to Category & Tag, and then creating a listing.  After the listing is created, and I assume the notification would be created, I refresh the page and the error displays in the console.

@blynch11p @rkenyon1969  the subscription notification issue was a backend issue. Make sure to pull latest (it is merged into master now so you can use that if you want)

Errors mentioned above are corrected.  Notifications are not sent after a user unsubscribes, as expected.
👍

Please don't merge until I've reviewed. - thank you,

pulled branch
review code
tested

:+1:


GitHub Pages Build Fails

Just tried to add this to our GitHub pages jekyll site and, although it's listed in the approved plugins list, it caused our build to fail. Used version 0.5.0 as indicated in the list.

You will need to exclude vendor/ from site build.
https://github.com/jekyll/jekyll/issues/2938


Terrible documentation

[Enter feedback here]
This is a terrible spec that is helpless. No many detailed explanations. Of course, people can argue this point.
For example, in this article, search the following sentence:
In the page For more information, type the following command: get-help about_commonparameters
Then go to PowerShell environment and type the following cmdlet:
get-help Disable-SPFeature -detailed
Exact same content will be shown up.
Sigh...................

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

ID: f3a99664-cc7f-d789-c5fd-488e0d73874d
Version Independent ID: 2d555636-8122-3ab0-0ac0-9fe656a9555b
Content: Disable-SPFeature (sharepoint-server)
Content Source: sharepoint/sharepoint-server-ps/sharepoint-server/Disable-SPFeature.md
Product: sharepoint-server-itpro
GitHub Login: @Techwriter40
Microsoft Alias: pamgreen

Remember that SharePoint pre-SE doesn't pick up cmdlet documentation from online -- what you see is what you get in-product, so the documentation here could be better than what you see when you run get-help.
With that said, yes this cmdlet doc needs improvement. For one, it should not use short hand in the example (i.e., it should not use %) and the -Identity description explicitly references the 14 hive which wouldn't necessarily be correct for 2013 and higher.


Refactor XML profiles [8564]

Build status:

Build status:

Build status:

Build status:

Build status:

Build status:


update readme. GeoAxis needs still some work.

While updating this readme file. I noticed that GeoAxis needs still some work for other projections, ie. orthographic. Issues testing more will come later. Plus, it will be nice that have working also with image, we would like to just simply put map images from Mars, Jupiter, Earth... anywhere basically.

BTW this adds two PNG files to the git history that will be downloaded for every user that does Pkg.add.

@Datseris did you manage to do any other projections? On my end GeoAxis does not work as expected for orthographic or similars.

recently we did a Julia tutorial for complete new users. No prior Julia knowledge. They wanted to start doing plots from day one... so having a using command ] st is useful in this case. Some people just wants to do maps and see their data.

recently we did a Julia tutorial for complete new users. No prior Julia knowledge. They wanted to start doing plots from day one... so having a using command ] st is useful in this case. Some people just wants to do maps and see their data.

Also good, but also not an argument for putting "How do you use a Julia package" on the readme of GeoMakie.jl. If that was so, every single Julia package would have to repeat the same, well established kind of information in their readme. This is not the worst part. The worst part is that this information is simply irrelevant to the package. How to "use a package in the Julia language" is something that I'd expect to learn in the language documentation, not in the documentation of a plotting library for geoplots.
Of course, it makes sense to teach this in a tutorial for new users on the other hand, but that's not what READMEs are supposed to be. In my perspective atleast. As I said before, everything I say here are my opinions, its not like I have concrete mathematical proof that what I say is the "Correct" way.

@Datseris did you manage to do any other projections? On my end GeoAxis does not work as expected for orthographic or similars.

Not yet, it is in my TODOs to come here and test everything next week.

I think it's great to have some examples in the README. I hate packages where I can't at least get a minimal idea of what I'm expecting, and I usually just leave the repo without clicking on the docs.
Of course, this is not for people already set on using the package, but rather people that are only browsing and need to see something interesting to even click on anything.
Which also makes it worth it to include a minimal guide for how to install the package, since the person strolling may not even be familiar with julia.
I get that the maintenance is annoying and I'm currently trying to figure out a way to build the readme automatically with the CI for Makie...
Until then, I'd just merge this as is!

close due to https://github.com/JuliaPlots/GeoMakie.jl/pull/103


First year class material

Fixes #.
Changes proposed in this PR

If urgent please add the urgent label.

First Year class material has been added


Adhere to $VIRTUAL_ENV

Hi!
I have all my virtual environments under venv, not .venv. So, I would like to configure this action to adhere to my convention.
Since restore-virtualenv already sets the $VIRTUAL_ENV environment variable, why not adhere to it, too? I could configure it like so:
      - name: Set VIRTUAL_ENV (Ubuntu | macOS)
        if: startsWith( matrix.os, 'ubuntu-' ) ||
            startsWith( matrix.os, 'macos-' )
        run: export VIRTUAL_ENV=venv

      - name: Set VIRTUAL_ENV (Windows)
        if: startsWith( matrix.os, 'windows-' )
        run: setx VIRTUAL_ENV venv

Alternatively, one could also introduce a with parameter to the action like so:
      - uses: syphar/restore-virtualenv@v1
        id: cache-virtualenv
        with:
          virtual_env: venv

@Bengt while in my projects I just used the default and was fine with it, I can totally see that this can be useful.
Both respecting the environment, and having the with parameter could make sense.
I'm happy to review a PR for this topic, and provide help if you need it.

Opened a PR. No JS expert here, so happy for any kind of feedback.

closing since #219 is merged


Error on Q&A module after publishing a report edited with Tabular Editor on Power BI Desktop

Describe the bug
When visualizing the Q&A module on a report published on Power BI Services and that was modified with Tabular Editor, the former stops functionning. Prompting the module for details on this error opens the following window (see image below) :

The origin model culture of our report is French (see image below) :

To Reproduce
Steps to reproduce the behavior:

Open Power BI Desktop and change the regional parameters to French
Create a new report, import some data and add a Q&A module to the report
Edit it with Tabular Editor and save the modifications
Publish it to Power BI Services and check the Q&A module behaviour

Expected behavior
There should be no impact on the Q&A module when editing a Power BI report in a culture other than English.
Observed behavior
After editing our report with TabularEditor, the native Q&A module stopped working. With no edition in TabularEditor, the Q&A module works perfectly fine.
Application specifics

Tabular Editor version: 2.16
Semantic Engine used: Power BI Desktop (latest version)

Additional context
To test this bug a bit more, we tried to create a report in English culture (en-US) and then doing the exact same modifications in TabularEditor as with the french one and this one had no issue with its Q&A module. We estimate that TabularEditor might change a hidden parameter in the pbix file (switching some culture information to en-US maybe) but weren't able to identify it precisely.

Could you provide some more information on what kinds of modifications you make to the pbix file through Tabular Editor?

Opening TabularEditor via the "external tools" section in Power BI Desktop on a report and directly saving it (no further modification with TabularEditor) suffices to provoke the error I detailed earlier. So I don't think it is an error on a specific manipulation in TabularEditor.

Is this still an issue with the latest (May 2021) release of Power BI Desktop?

@Aeldred-DCO I believe version 2.16.3 of Tabular Editor should solve this issue. Could you please check? Thanks!


[UI] custom table header for selected row

Description
This PR fixes UI by changing the table header with the custom configuration type for selected no of rows.
For:

application table: (no-of-rows) application(s) selected
pattern table: (no-of-rows) pattern(s) selected
filter table: (no-of-rows) filter(s) selected
performance profile: (no-of-rows) profile(s) selected

This PR fixes #4528
Notes for Reviewers
Demo:

Application Table:

https://user-images.githubusercontent.com/73700530/140497410-9bf83ad5-2095-4424-bc3d-40905b1079cf.mov

Pattern Table:

https://user-images.githubusercontent.com/73700530/140497486-892ab9b3-e9dd-496c-ab41-bb5e8c307b51.mov

Filter Table:

https://user-images.githubusercontent.com/73700530/140497518-823f1596-7d3d-4b5d-888b-2958ed81f51a.mov

Performance Profile table:

https://user-images.githubusercontent.com/73700530/140497561-d7cacacd-777f-4da4-8875-893bad031cd3.mov
Signed commits

[x] Yes, I signed my commits.

I love seeing these screen recordings. Nice work, @theBeginner86 👍

Yay, @theBeginner86! 🎈

Thanks, @leecalcote @Chadha93 😁


raw.githack.com Favicon

Hi neoascetic,
Do you think it's possible to add a Favicon ?
I made little hack to reuse rawgit.com Favicon to identify you webapp ;)
If use full path to get the image :
<link rel="icon" href="/path/to/favicon.png">

Maybe you want to add your own custom Icon ;)
I take advantage to thank you for your githack.com service.
Best regards,
Nicolas D.

Hello. Thank you for request. Check the new icon out :)

Hi Neoascetic !
Thank you for your reply and the implementation of the Favicon.
I confirm that works perfectly, my bookmark icon has been updated automatically ;)

Best Regards,
Neoblaster


GEODE-4858: Refactor 'list async-event-queue' command and function

Command refactored for cleaner flow
Command refactored to return ResultModel
Function refactored to extend CliFunction

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

It crossed my mind that the AsyncEventQueueDetails are largely a duplication of the CacheConfig.AsyncEventQueue configuration object.  I got some strange hangs when I tried to switch the one out for the other, however.  That refactor can be part of the ongoing effort surrounding the configuration classes, perhaps.

Precheckin green.


Fix tests after kernel push update.

Tests were broken to unblock kernel push.

@IanMatthewHuff were you already working on this? If not I can take this on.

@joyceerhl please grab it if you have cycles. I did one cleanup pass here, but it's still pretty bad. https://github.com/microsoft/vscode-jupyter/pull/5589

I think we can close this as a dupe of #5535, it's the same set of tests that are failing (apart from ipywidgets, which are legitimately broken).


error Plugin gatsby-source-strapi returned an error

Hi there,
I've followed the tutorial about gatsby and simple articles blog but I have an Issue.
I have this error:
`error Plugin gatsby-source-strapi returned an error
Error: Request failed with status code 403

createError.js:16 createError
[app]/[axios]/lib/core/createError.js:16:15

settle.js:18 settle
[app]/[axios]/lib/core/settle.js:18:12

http.js:192 IncomingMessage.handleStreamEnd
[app]/[axios]/lib/adapters/http.js:192:11

next_tick.js:139 _combinedTickCallback
internal/process/next_tick.js:139:11

next_tick.js:181 process._tickCallback
internal/process/next_tick.js:181:9

Fetch Strapi data: 53.412ms
[LOADER] source and transform nodes
`
So that comes in when I have modified the file gatsby-config.js with the informations provided in documentation and tutorial. The  strapi server start but gatsby fail when I've made the modification.
I have already see in closed issue a guy with the same problem on Gatsby but I don't want to just throw problem away. I'm on MacOS (High Sierra)
Do you have any ideas ? Someone have problem with gatsby install & launch gatsby  on MacOS ?

Nobody have an idea ?
Strapi, mongod and mogo are launch but gatsby don't want when I launch the project ...
Do I need to do something in api folder or administration ? Permissions are already set to "find"

Same

I found it, Gatsby needs access to find the user.
https://blog.strapi.io/building-a-static-website-using-gatsby-and-strapi/#allowaccess


Declare and check MSRV

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (b3039a9) 82.06% compared to head (bfcd5e9) 82.06%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #12   +/-   ##
=======================================
  Coverage   82.06%   82.06%
=======================================
  Files           3        3
  Lines         368      368
=======================================
  Hits          302      302
  Misses         66       66

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat: support batch delete snapshots

#5

I think the main steps remaining are to move the relevant functions to a new module (e.g. batch_deleter.py), and to design and document the time format by the user.

I have moved the code for the new feature into batch_deleter.py, except for snap_operator.config_snapshots_mapping (previously named _snapshots_of_configs).
config_snapshots_mapping is a key component of the new functionality and relies on snap_operator._get_old_backups. However, because _get_old_backups is private, I am hesitant to move config_snapshots_mapping to batch_deleter.py. Could you please instruct me whether it's possible to make _get_old_backups a public function? If not, I will have to duplicate the code in batch_deleter.py, which would be redundant.
Additionally, I wrote unit tests related to the new feature. However, there is now a significant issue:
After moving the new feature's code into batch_deleter.py, I also modified the data model returned by snap_operator.config_snapshots_mapping (previously named _snapshots_of_configs). The data structure changed from dict[str, dict[datetime.datetime, snap_holder.Snapshot]] to dict[configs.Config, list[snap_holder.Snapshot]].
This change simplifies the data model and makes ideal data operations easier. However, I did not realize that configs.Config is unhashable, rendering all operations based on this new data structure invalid.
Now, I need to rethink how to address these issues.
I have committed the relevant code here.

I have pulled in the changes reviewed so far.
I will look forward to a PR of the batch_deleter commit.


Unable to execute queries with distinct keyword

We are running into a problem while executing a query that has distinct keyword and orders by a field. When the result set fetched during the execution of the query does not match the size limit specified and if we have a continuation token that is not null, we are noticing this issue.
The continuation token generated for us has an attribute called "lastHash" which is not being accepted as a valid token attribute. Here is the error message reported by the sdk,
Failed to query items; nested exception is {\"ClassName\":\"BadRequestException\",\"userAgent\":\"azsdk-java-cosmos/4.38.1 MacOSX/10.16 JRE/1.8.0_232\",\"statusCode\":400,\"resourceAddress\":null,\"innerErrorMessage\":\"One of the input values is invalid.: DistinctContinuationToken is malformed. DistinctContinuationToken can not have a 'lastHash', when the query type is not ordered (ex SELECT DISTINCT VALUE c.blah FROM c ORDER BY c.blah).\",\"causeInfo\":null,\"responseHeaders\":\"{}\"}
The query we were trying to execute,
SELECT distinct c.originalMessageId, c.messageTimestamp FROM c WHERE c.testFlag = @testFlag AND (@originalMessageId = null OR c.originalMessageId = @originalMessageId) AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd) ORDER BY c.messageTimestamp ASC
The page number and page size were set using the CosmosPageRequest object. Initially we had it set to 0 and 100 respectively.
https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/CosmosTemplate.java#L826
The query we issued was able to fetch only 20 records in the first iteration and along with the following continuation token,
{"lastHash":"kMmLddiTVKs4TqCdtIm7Uw==","sourceToken":"{\"compositeToken\":\"{\\\"token\\\":\\\"+RID:~NEwdAJ-YNKKtWhsAAABABg==#RT:1#TRC:100#RTD:Svj6cyIw1f7CCts4bwYlBTMxMzMuMTouMzhVMjo7MjU7MzovOjM5WwA=#ISV:2#IEO:65567#QCF:8#FPC:AghtAAAAABkAAHYCAAAAGQAAbQAAAAAZAAAGADEawP/AZW4AAAAAGQAAAgAAQG8AAAAAGQAAAgAAQHAAAAAAGQAAAgAAQHEAAAAAGQAAAgAAQHIAAAAAGQAAAgAAQHMAAAAAGQAAAgAAQHQAAAAAGQAAAgAAQHUAAAAAGQAAAgAAQHYAAAAAGQAAAgAAQHcAAAAAGQAAAgAAQHgAAAAAGQAAAgAAQHkAAAAAGQAAAgAAQHoAAAAAGQAABACBRAEAbgEAAAAZAAAGAIEN/v9wcm8BAAAAGQAAAgAAQHABAAAAGQAAAgAAQHEBAAAAGQAAAgAAQHIBAAAAGQAAAgAAQHMBAAAAGQAAAgAAQHQBAAAAGQAAAgAAQHUBAAAAGQAAAgAAQHYBAAAAGQAAAgAAQHcBAAAAGQAAAgAAQHgBAAAAGQAAAgAAQHkBAAAAGQAAAgAAQHoBAAAAGQAAAgAAQHsBAAAAGQAAAgAAQHwBAAAAGQAAAgAAQH0BAAAAGQAAAgAAQH4BAAAAGQAAAgAAQH8BAAAAGQAAAgAAQIABAAAAGQAAAgAAQIEBAAAAGQAAAgAAQIIBAAAAGQAAAgAAQIMBAAAAGQAAAgAAQIQBAAAAGQAAAgAAQIUBAAAAGQAAAgAAQIYBAAAAGQAAAgAAQIcBAAAAGQAAAgAAQIgBAAAAGQAAAgAAQIkBAAAAGQAAAgAAQIoBAAAAGQAAAgAAQIsBAAAAGQAAAgAAQIwBAAAAGQAAAgAAQI0BAAAAGQAAAgAAQI4BAAAAGQAAAgAAQI8BAAAAGQAAAgAAQJABAAAAGQAAAgAAQJEBAAAAGQAAAgAAQJIBAAAAGQAAAgAAQJMBAAAAGQAAAgAAQJQBAAAAGQAAAgAAQJUBAAAAGQAAAgAAQJYBAAAAGQAAAgAAQJcBAAAAGQAAAgAAQJgBAAAAGQAAAgAAQJkBAAAAGQAAAgAAQJoBAAAAGQAAAgAAQJsBAAAAGQAAAgAAQJwBAAAAGQAAAgAAQJ0BAAAAGQAAAgAAQJ4BAAAAGQAAAgAAQJ8BAAAAGQAAAgAAQKABAAAAGQAAAgAAQKEBAAAAGQAAAgAAQKIBAAAAGQAAAgAAQKMBAAAAGQAAAgAAQKQBAAAAGQAAAgAAQKUBAAAAGQAAAgAAQKYBAAAAGQAAAgAAQKcBAAAAGQAAAgAAQKgBAAAAGQAAAgAAQKkBAAAAGQAAAgAAQKoBAAAAGQAAAgAAQKsBAAAAGQAABAARef8DbwIAAAAZAAAGACE2AMDQSXACAAAAGQAAAgAAQHECAAAAGQAAAgAAQHICAAAAGQAAAgAAQHMCAAAAGQAAAgAAQHQCAAAAGQAAAgAAQHUCAAAAGQAAAgAAQHYCAAAAGQAABAChdB8A\\\",\\\"range\\\":{\\\"min\\\":\\\"05C1B7FFFFFFF0\\\",\\\"max\\\":\\\"05C1BFFFFFFFF0\\\"}}\",\"orderByItems\":[{\"item\":\"2022-09-27T19:14:27.928Z\"}],\"rid\":\"NEwdAJ-YNKI2WhsAAABABg==\",\"inclusive\":true}"}
Since the continuation token has a property called "lastHash", the next iteration to fetch more records was encountering an exception reported earlier. This is the version of the library we are using,

com.azure
azure-spring-data-cosmos
3.29.1

Hi @kushagraThapar , could you help to look into this issue?

@trande4884 please take a look at this, thanks!

@ViswanathVeerappan it looks like you are trying to use an annotated query when you run into the issue is that correct? Also, I'm assuming since you are saying the first page only gets back 20 results you are expecting to get more back than that with your page size of 100?

@trande4884 yes, we did use the annotated query only. and yes that query has more than 10k results.

@loudywen so you are defining a CosmosPageRequest like below correct?
CosmosPageRequest pageRequest = new CosmosPageRequest(0, 100, null);
When querying for the second page, are you using pageRequest.next() or is an entirely new CosmosPageRequest being created? Also, in your CosmosPageRequest creation are you passing in the Sort parameter or just page number, page size and continuation token?

@trande4884  We just return one page at a time. for next page, client will send us a page number and token. So we don't use pageRequest.next(), it just an entierly new CosmosPageRequest for each page .
Depends on whether the endpoint received the token, if token is null we do
CosmosPageRequest pageRequest = CosmosPageRequest.of(page, size, null, sort);
else, CosmosPageRequest pageRequest = CosmosPageRequest.of(page, size, token, sort);
the sort just like this Sort sort = Sort.by(Sort.Order.asc("messageTimestamp"));

Thank you for the additional info @loudywen ! So I am trying to reproduce the issue but so far not able, here is my test I have setup so let me know if anything looks different from what you are running:
@Query(value = "SELECT distinct c.postalCode FROM c WHERE c.city = @city")     Page<Address> annotatedFindPostalCodeByCityOrdered(@Param("city") String city, Pageable pageable);
`CosmosPageRequest pageRequest = new CosmosPageRequest(0, 100, null, Sort.by(Sort.Direction.ASC, "postalCode"));
final Page resultsAsc = addressRepository.annotatedFindPostalCodeByCityOrdered(TestConstants.CITY, pageRequest);
    CosmosPageRequest pageRequest2 = new CosmosPageRequest(1, 100, token, Sort.by(Sort.Direction.ASC, "postalCode"));
    final Page<Address> resultAsc2 = addressRepository.annotatedFindPostalCodeByCityOrdered(TestConstants.CITY, pageRequest.next());`

I should be seeing the error when executing resultAsc2 correct?

@trande4884  the resultsAsc  should seeing error. I think there is a confusion here. if the query result has only 1 page , then no error, if has more than 1 page then you should see error. If you try to set the page size to 1, may be you will see the error

@trande4884 We just want to let you know that we have around 20 physical partitions on our container. We issued a single query with page number = 0 and size = 100. When the query was executed within this do while block, the query fetched only 20 records and a continuation token. Since this condition,
result.size() < pageable.getPageSize() && continuationToken != null was true,
(result set(20) < page size(100)) and (continuation token was not null), it went ahead and executed the query again inside the loop updating the page number to 1. We were encountering a problem during this iteration since the query contained an attribute "lastHash".

@loudywen @ViswanathVeerappan thank you for the additional context. Just to be clear is this something that was working in the past and has regressed or is this a new implementation?

@trande4884 This is a new piece of functionality we are trying to implement. Here is a sample data model,
[   {     "originalMessageId": "a",     "messageId": "aa",     "messageTimestamp": "2022-10-15T02:09:54.546Z"   },   {     "originalMessageId": "a",     "messageId": "bb",     "messageTimestamp": "2022-10-15T02:09:54.546Z"   },   {     "originalMessageId": "a",     "messageId": "bb",     "messageTimestamp": "2022-10-15T02:09:54.546Z"   },   {     "originalMessageId": "a",     "messageId": "cc",     "messageTimestamp": "2022-10-15T02:09:54.546Z"   },   {     "originalMessageId": "b",     "messageId": "dd",     "messageTimestamp": "2022-10-15T05:15:54.546Z"   },   {     "originalMessageId": "b",     "messageId": "ff",     "messageTimestamp": "2022-10-15T05:15:54.546Z"   },   {     "originalMessageId": "c",     "messageId": "gg",     "messageTimestamp": "2022-10-15T15:00:00.000Z"   },   {     "originalMessageId": "d",     "messageId": "hh",     "messageTimestamp": "2022-10-15T23:59:59.999Z"   } ]
From this we would like to filter out unique originalMessageId and messageTimestamp combination as follows,
[   {     "originalMessageId": "a",     "messageTimestamp": "2022-10-15T02:09:54.546Z"   },   {     "originalMessageId": "b",     "messageTimestamp": "2022-10-15T05:15:54.546Z"   },   {     "originalMessageId": "c",     "messageTimestamp": "2022-10-15T15:00:00.000Z"   },   {     "originalMessageId": "d",     "messageTimestamp": "2022-10-15T23:59:59.999Z"   } ]
Also, we are looking into finding the total count of this.

@ViswanathVeerappan and @loudywen there are some issues in our implementation that I am working to resolve in this area, as we should not be returning a continuation token back to you with the first page of results. However, you should be able to get things running without my changes. The query above does not support continuation tokens, so you must Simply create your CosmosPageRequest objects with page number and page size and leave the continuation token blank.
This is a DISTINCT query that supports continuation tokens:

SELECT DISTINCT VALUE c.name FROM c ORDER BY c.name

These are DISTINCT queries that do not support continuation tokens:

SELECT DISTINCT c.name FROM c ORDER BY c.name
SELECT DISTINCT VALUE c.name FROM c ORDER BY c.id

In order for continuation tokens to be supported with DISTINCT they must use VALUE and the ORDER BY has to be the same field you are returning. Due to these requirements no DISTINCT query that returns more than one field will support continuation tokens. More info can be found here.

@trande4884 Just a follow up question to what was mentioned in the above thread,
Can the queries containing the distinct keyword where a continuation token is expected, have a where clause on some other fields than the field to which the distinct keyword is being applied to?
For example,
SELECT DISTINCT VALUE c.name FROM c where c.age > 25 and c.city = 'Chicago' ORDER BY c.name
That was something not clear in the documentation attached.
For the query we were trying to implement, we could look into implementing some kind of client side filtering that filters out duplicate originalMessageId and messageTimestamp based combination.
We would like to make sure if either of the following queries was supported by the database,
SELECT count(uniqueCount) as count FROM (SELECT distinct value c.originalMessageId FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd)) as uniqueCount
SELECT count(1) as count FROM (SELECT distinct value c.originalMessageId FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd))
Since the client side filtering is being considered as an option, we would atleast need to have a way to reconcile the count of available on the database.
One of the observations noticed while executing the count queries was, it consumed more RUs(close to 90K out of 200K. It gave us a count of 2.3 million from a total 9 million odd records). Also, it took about 40 to 50 seconds to complete the execution.
Do you have any recommendations or suggestions to reduce the RU consumption and the latency?

The below is an acceptable query for pagination:
SELECT DISTINCT VALUE c.name FROM c where c.age > 25 and c.city = 'Chicago' ORDER BY c.name
In regards to the two count queries you posted, you are asking if they are supported but it seems you have already ran them to get the consumed RUs correct? Are you trying to run these as annotated queries?

@trande4884 Yeah, I am trying to run the count queries as annotated queries. Just trying to see if they are supported and in the right usage. Are there any general guidelines or recommendations when it comes to using the queries with count keyword? Just in terms of using the right indexes. Since I'm using a subquery, I'm not able to use any composite indexes and order by clause in the subquery part. In general, wanting to reduce the RU consumption while executing the count queries.

I don't believe you need the subquery, instead of:
SELECT count(uniqueCount) as count FROM (SELECT distinct value c.originalMessageId FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd)) as uniqueCount
You should be able to do something like this:
SELECT COUNT(distinct value c.originalMessageId) FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd)

@trande4884 I could not use distinct and value keywords in the query suggested above. It is throwing me the following syntax error,
{"errors":[{"severity":"Error","location":{"start":13,"end":21},"code":"SC1001","message":"Syntax error, incorrect syntax near 'distinct'."}]}

Ah okay, however since this is a count query that will not be paginated you can just remove the 'VALUE' attribute.

@trande4884 It is not letting me use either distinct or value or both.
SELECT COUNT(distinct value c.originalMessageId) AS uniqueCount FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd)
SELECT COUNT(distinct c.originalMessageId) AS uniqueCount FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd)
SELECT COUNT(value c.originalMessageId) AS uniqueCount FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd)
The above combinations of the query are not working. Only the following query works,
SELECT COUNT(c.originalMessageId) AS uniqueCount FROM c WHERE c.testFlag = @testFlag AND ARRAY_CONTAINS(@partitionIds, c.partitionId) AND (c.messageTimestamp between @rangeStart and @rangeEnd)

@trande4884 thank you for taking a lot at it.


Itemframe crash client

http://pastebin.com/2nU6pCub

Can confirm: http://pastebin.com/9DEqEuqU

Probably fixed: https://github.com/MylesIsCool/ViaVersion/pull/14

See above.


Add leash mode

If leash mode is enabled the script is double checked with the leash_model before execution and a message is printed if its deemed unsafe.
A cute leash is added to the ascii art dog.

Haha I'm scared to test this by asking for dangerous things
I think I'll modify temporarily to give me override after it decides so I can test

Haha I'm scared to test this by asking for dangerous things
I think I'll modify temporarily to give me override after it decides so I can test

Good idea. I didn't really test this PR as much as I should

So far it it's hard to find something the base model will do that the leash model won't let it!

So far it it's hard to find something the base model will do that the leash model won't let it!

Honestly I'm not really surprised. I added it because I knew Grant wanted it but I'm skeptical. In a lot of ways it seems like asking an llm the same thing twice. You're not really going to get new information. And if you really care about safety you're going to want to read the script first anyway.

finally got one but the leash stops it and the reason is: it's safe 😆

So far it it's hard to find something the base model will do that the leash model won't let it!

Honestly I'm not really surprised. I added it because I knew Grant wanted it but I'm skeptical. In a lot of ways it seems like asking an llm the same thing twice. You're not really going to get new information. And if you really care about safety you're going to want to read the script first anyway.

Ya I'm not married to this idea, it started out (like most things) as an offhand tweet. I enjoy using dry-run quite a lot, so maybe that's enough.

So far it it's hard to find something the base model will do that the leash model won't let it!

Honestly I'm not really surprised. I added it because I knew Grant wanted it but I'm skeptical. In a lot of ways it seems like asking an llm the same thing twice. You're not really going to get new information. And if you really care about safety you're going to want to read the script first anyway.

Ya I'm not married to this idea, it started out (like most things) as an offhand tweet. I enjoy using dry-run quite a lot, so maybe that's enough.

I definitely want at least the leash ASCII art from this pr

I changed leash to just do what dry-run used to do.


feat: As a user, I want to have a MetaMask Snap to check the attestations of the recipient of a transaction

What does this PR do?
Adds a first version of a "Verax Snap"
Related ticket
Fixes #355
Type of change

[ ] Chore
[ ] Bug fix
[X] New feature
[ ] Documentation update

Check list

[ ] Unit tests for any smart contract change
[ ] Contracts and functions are documented

Codecov Report

Merging #356 (8cb2d30) into dev (a45644a) will increase coverage by 0.76%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##              dev     #356      +/-   ##
==========================================
+ Coverage   92.30%   93.07%   +0.76%
==========================================
  Files          16       16
  Lines         260      260
  Branches       62       62
==========================================
+ Hits          240      242       +2
+ Misses         10        8       -2
  Partials       10       10

see 2 files with indirect coverage changes
:mega: Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!


WIP: Schema registry views

Added select with the schema type in the New Schema form

looks good so far


move close buttons to the left

Description
Moved all close buttons to the left.

Changes

moved close buttons to the left side.

Related Issues
https://github.com/threefoldtech/tfgrid-sdk-ts/issues/1601
Checklist

[ ] Tests included
[x] Build pass
[ ] Documentation
[x] Code format and docstrings
[x] Screenshots/Video attached (needed for UI changes)

https://github.com/threefoldtech/tfgrid-sdk-ts/blob/a1cd6cfcb0f8bed7bca2fe100ac9de9acbfe8344/packages/playground/src/dashboard/components/user_farms.vue#L96-L104

This one was already moved. and the rest were added in https://github.com/threefoldtech/tfgrid-sdk-ts/pull/1622/commits/f1c9ec08304424b2801297a77e506f2a27e08c6d


[Question] How do you insert data into a gtk.ListStore?

I was wondering this as the gtk.ListStore.Append method expression do not receive parameters.

You need to call (*gtk.ListStore).Set(treeIter, ...) with the treeIter returned by Append.  It's a little wonky but matches the C API.

I see... How do I set the data in that gtk.TreeIter struct?

Ohh... I see. Thanks for the clarification!


Ticket/1.6.x/11695 facter comment

All fact commenting complete in facter/lib/facter. Thanks Daniel for your feedback.

Other than those specific issues, this doesn't automatically merge.  Can you also rebase it against master, so we can merge cleanly.

This includes a pile of unrelated changes; can you resubmit a smaller, clean pull request please.

Updated and cleaned!

I'm going to echo Daniel's sentiments here ... but this pull request has sat idle for a bit so I thought I'd give it a kick.
Your indentation is eratic - choose either 2, 3 or 4 spaces for indent. Otherwise you make us poor pedants heads explode :-).
Don't remove the comment from the real ruby classes/modules - these are used to generate rdoc comments in the API documentation. If anything clean them up ... but don't remove them - they are important. Check this out:
http://rubydoc.info/github/puppetlabs/facter/
Now if you look at say 'IP' you'll see the comment appear in the description. Some of the modules aren't right though - and its probably because the comment appears before the require line (and there is extra-whitespace). If you can fix the comments so they look like ip.rb (comment/description pushed hard up against the 'module' or 'class' block) then it makes the API docs do the right thing.
You can test the format by running 'rdoc' in the facter directory, and pointing a browser at the html dir.

Will take care of the indentations Ken. :-) Not going to remove any comments from classes/modules, had just removed the few I had added in the facter/util area as explained above. I will put them back though if that is needed.
Thanks to both of you for such detailed feedback. Appreciate it much.

@ssvarma you seemed to have checked in the doc/ directory into the repo. This normally doesn't get committed - can you git rm the directory and then apply another commit? Thanks.
If you like - add the 'doc/' entry to .gitignore after the 'git rm doc/' so it won't keep bothering you when you do a 'git status' :-).

Oops, have taken doc out. It should be all good now! Sorry it took so long, was in Puppet training last week.