text:
More efficient Matrix data structure

So we should avoid cloning and rearranging as much as we can. This PR is trying to solve that!

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (master)
[ ] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

This might come helpful now!

@DimitrisPapac could you review this PR please? Maybe we can find a way to keep the cake and eat it too.
The problem with this change is that we'd be keeping around the entire matrix twice.
(actually, we're also keeping the extended matrix, which is even bigger, but I don't think we can avoid it due to the commitment_state that's passed around).

Yes, I can get to it later today.
Στις Τρί, 12 Μαρ 2024, 12:59 ο χρήστης Marcin @.***>
έγραψε:

@DimitrisPapac https://github.com/DimitrisPapac could you review this
PR please? Maybe we can find a way to keep the cake and eat it too.
The problem with this change is that we'd be keeping around the entire
matrix twice.
(actually, we're also keeping the extended matrix, which is even bigger,
but I don't think we can avoid it due to the commitment_state that's
passed around).
—
Reply to this email directly, view it on GitHub
https://github.com/HungryCatsStudio/poly-commit/pull/45#issuecomment-1991488327,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AES2NOWUDHXOW27HOIGEOR3YX3UZZAVCNFSM6AAAAAA7J6R52SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGQ4DQMZSG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

The results below are for 12-20 variables and using 10 samples per case. There seems to be a speedup for commit, open and verify by making the change to two matrices (i.e., one for row-major and one for column-major) but at the cost of storing entries twice. In particular, commit seems to be benefiting the most from this change. open seems to yield very minor differences. verify also seems to be improving by a few milliseconds.
row-mul branch:
commit Brakedown/12 time:   [3.1485 ms 3.3624 ms 3.4641 ms]
change: [+2.6137% +9.8502% +17.152%] (p = 0.00 < 0.10)
Performance has regressed.
commit Brakedown/14 time:   [7.1937 ms 7.2126 ms 7.2246 ms]
change: [+2.8675% +4.5740% +6.4440%] (p = 0.07 < 0.10)
Performance has regressed.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) low mild
commit Brakedown/16 time:   [12.319 ms 12.616 ms 12.872 ms]
change: [-3.9617% -1.6284% +1.0512%] (p = 0.42 > 0.10)
No change in performance detected.
commit Brakedown/18 time:   [33.788 ms 33.906 ms 34.116 ms]
change: [+3.8341% +4.9034% +5.7881%] (p = 0.00 < 0.10)
Performance has regressed.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) low mild
commit Brakedown/20 time:   [94.436 ms 95.083 ms 95.598 ms]
change: [-0.2659% +1.8619% +3.7812%] (p = 0.09 < 0.10)
Change within noise threshold.
open Brakedown/12   time:   [165.54 ms 166.57 ms 167.40 ms]
change: [-0.6614% +0.2327% +1.2977%] (p = 0.68 > 0.10)
No change in performance detected.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) high mild
open Brakedown/14   time:   [293.43 ms 296.74 ms 300.13 ms]
change: [-0.1426% +1.0274% +2.2508%] (p = 0.18 > 0.10)
No change in performance detected.
open Brakedown/16   time:   [472.66 ms 475.77 ms 479.31 ms]
change: [+1.9692% +2.7562% +3.6098%] (p = 0.00 < 0.10)
Performance has regressed.
open Brakedown/18   time:   [769.26 ms 774.57 ms 780.25 ms]
change: [+0.2220% +0.9613% +1.7809%] (p = 0.08 < 0.10)
Change within noise threshold.
open Brakedown/20   time:   [1.4276 s 1.4363 s 1.4462 s]
change: [+0.6962% +1.3720% +2.1119%] (p = 0.00 < 0.10)
Change within noise threshold.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) high mild
verify Brakedown/12 time:   [191.60 ms 192.55 ms 193.51 ms]
change: [+0.5137% +1.0989% +1.7208%] (p = 0.01 < 0.10)
Change within noise threshold.
verify Brakedown/14 time:   [313.15 ms 315.43 ms 317.57 ms]
change: [+0.5622% +1.3997% +2.2166%] (p = 0.02 < 0.10)
Change within noise threshold.
verify Brakedown/16 time:   [383.99 ms 387.56 ms 390.89 ms]
change: [+0.2945% +1.2962% +2.2385%] (p = 0.05 < 0.10)
Change within noise threshold.
verify Brakedown/18 time:   [507.66 ms 512.34 ms 516.86 ms]
change: [-0.3138% +0.7377% +1.7373%] (p = 0.20 > 0.10)
No change in performance detected.
verify Brakedown/20 time:   [782.04 ms 788.16 ms 794.11 ms]
change: [-0.5467% +0.2093% +1.0219%] (p = 0.65 > 0.10)
No change in performance detected.
brakedown branch:
commit Brakedown/12 time:   [3.6407 ms 3.7222 ms 3.8659 ms]
change: [+12.872% +21.196% +30.579%] (p = 0.00 < 0.10)
Performance has regressed.
Found 2 outliers among 10 measurements (20.00%)
1 (10.00%) high mild
1 (10.00%) high severe
commit Brakedown/14 time:   [8.5522 ms 8.6043 ms 8.6981 ms]
change: [+18.773% +21.004% +23.881%] (p = 0.00 < 0.10)
Performance has regressed.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) high mild
commit Brakedown/16 time:   [19.895 ms 20.040 ms 20.255 ms]
change: [+53.760% +57.455% +60.978%] (p = 0.00 < 0.10)
Performance has regressed.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) high mild
commit Brakedown/18 time:   [47.796 ms 48.069 ms 48.320 ms]
change: [+40.208% +41.568% +43.098%] (p = 0.00 < 0.10)
Performance has regressed.
commit Brakedown/20 time:   [113.38 ms 118.35 ms 127.51 ms]
change: [+22.288% +29.309% +36.443%] (p = 0.00 < 0.10)
Performance has regressed.
open Brakedown/12   time:   [168.05 ms 168.65 ms 169.47 ms]
change: [-0.1920% +1.0577% +2.1653%] (p = 0.11 > 0.10)
No change in performance detected.
Found 2 outliers among 10 measurements (20.00%)
1 (10.00%) low severe
1 (10.00%) high mild
open Brakedown/14   time:   [290.42 ms 294.19 ms 298.15 ms]
change: [-2.5026% -0.8592% +0.8622%] (p = 0.37 > 0.10)
No change in performance detected.
open Brakedown/16   time:   [463.50 ms 466.77 ms 469.96 ms]
change: [-2.8709% -1.8919% -1.0104%] (p = 0.00 < 0.10)
Performance has improved.
open Brakedown/18   time:   [787.45 ms 792.13 ms 797.02 ms]
change: [+1.3114% +2.2664% +3.1955%] (p = 0.00 < 0.10)
Performance has regressed.
open Brakedown/20   time:   [1.4806 s 1.4922 s 1.5050 s]
change: [+2.7567% +3.8969% +5.0199%] (p = 0.00 < 0.10)
Performance has regressed.
verify Brakedown/12 time:   [189.26 ms 190.77 ms 192.14 ms]
change: [-1.8005% -0.9246% -0.0534%] (p = 0.07 < 0.10)
Change within noise threshold.
verify Brakedown/14 time:   [305.32 ms 307.47 ms 309.49 ms]
change: [-3.4744% -2.5255% -1.5611%] (p = 0.00 < 0.10)
Performance has improved.
verify Brakedown/16 time:   [375.03 ms 379.42 ms 383.02 ms]
change: [-3.5215% -2.0994% -0.8101%] (p = 0.01 < 0.10)
Change within noise threshold.
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) low severe
verify Brakedown/18 time:   [507.53 ms 513.37 ms 519.23 ms]
change: [-1.2997% +0.2016% +1.6634%] (p = 0.80 > 0.10)
No change in performance detected.
verify Brakedown/20 time:   [790.04 ms 796.20 ms 802.07 ms]
change: [-0.0419% +1.0201% +2.1735%] (p = 0.10 < 0.10)
Change within noise threshold.

Looks like a good first step in optimizing the PCS.
I believe this can be pushed even further: specifically, when we compute_matrices (here), we only ever use rows from mat and cols from ext_mat, both in the commit method where these are generated, but also later in open, when we get the CommitmentState passed in.
That means we might benefit from only keeping the relevant column- or row-wise representation for mat/ext_mat. @DimitrisPapac Could you confirm this is the case, and if so, try to introduce said optimization?
Btw, verify is not affected by these changes, since the verifier never gets to construct the matrices in full. We can safely skip benchmarking these in the future to save time. (@DimitrisPapac you can pass strings like cargo bench commit to only bench the matching functions)

Also @autquis please confirm whether I'm making sense^ if you can

Here are the outputs that I got after benchmarking the row-mul branch after splitting struct Matrix into two separate structs: RowMajorMatrix and ColumnMajorMatrix and after making due changes throughout the codebase and pushing to the poly-commit repo. I am also including the outputs for the brakedown branch. As instructed, I only benchmarked commit and open but not verify. All experiments use 10 samples. Based on the results, commit seems to benefit from this change.
row-mul commit:
commit Brakedown<Fr>/12 time:   [2.9991 ms 3.1887 ms 3.4172 ms]
                        change: [-17.147% -13.177% -9.5740%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 3 outliers among 10 measurements (30.00%)
  2 (20.00%) low severe
  1 (10.00%) high mild
commit Brakedown<Fr>/14 time:   [5.9264 ms 5.9379 ms 5.9547 ms]
                        change: [-32.970% -30.716% -27.937%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 2 outliers among 10 measurements (20.00%)
  2 (20.00%) high severe
commit Brakedown<Fr>/16 time:   [12.753 ms 13.162 ms 13.688 ms]
                        change: [-35.591% -33.285% -30.404%] (p = 0.00 < 0.10)
                        Performance has improved.
commit Brakedown<Fr>/18 time:   [32.452 ms 32.830 ms 33.034 ms]
                        change: [-32.443% -31.922% -31.405%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low mild
commit Brakedown<Fr>/20 time:   [89.530 ms 89.738 ms 89.929 ms]
                        change: [-29.967% -25.867% -21.822%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 2 outliers among 10 measurements (20.00%)
  1 (10.00%) low mild
  1 (10.00%) high severe

row-mul open:
open Brakedown<Fr>/12   time:   [165.99 ms 166.85 ms 167.32 ms]
                        change: [-1.9980% -1.1723% -0.2629%] (p = 0.03 < 0.10)
                        Change within noise threshold.
open Brakedown<Fr>/14   time:   [294.12 ms 296.44 ms 298.76 ms]
                        change: [-0.7943% +0.7645% +2.3045%] (p = 0.37 > 0.10)
                        No change in performance detected.
open Brakedown<Fr>/16   time:   [463.41 ms 466.44 ms 469.66 ms]
                        change: [-1.0385% -0.0703% +0.8569%] (p = 0.89 > 0.10)
                        No change in performance detected.
open Brakedown<Fr>/18   time:   [782.23 ms 787.62 ms 792.76 ms]
                        change: [-1.4407% -0.5687% +0.3183%] (p = 0.26 > 0.10)
                        No change in performance detected.
open Brakedown<Fr>/20   time:   [1.4540 s 1.4603 s 1.4668 s]a
                        change: [-3.0715% -2.1411% -1.2755%] (p = 0.00 < 0.10)
                        Performance has improved.

brakedown commit:
commit Brakedown<Fr>/12 time:   [3.4152 ms 3.5304 ms 3.6509 ms]
                        change: [-3.4275% -0.5612% +1.7201%] (p = 0.66 > 0.10)
                        No change in performance detected.
commit Brakedown<Fr>/14 time:   [8.4320 ms 8.4950 ms 8.5819 ms]
                        change: [-3.2808% -2.2639% -1.2941%] (p = 0.04 < 0.10)
                        Performance has improved.
commit Brakedown<Fr>/16 time:   [19.862 ms 20.086 ms 20.459 ms]
                        change: [+3.5515% +4.9517% +6.3512%] (p = 0.00 < 0.10)
                        Performance has regressed.
commit Brakedown<Fr>/18 time:   [48.522 ms 49.446 ms 50.247 ms]
                        change: [+6.8161% +8.8914% +10.878%] (p = 0.00 < 0.10)
                        Performance has regressed.
commit Brakedown<Fr>/20 time:   [109.14 ms 110.60 ms 111.89 ms]
                        change: [-7.3949% -6.7829% -6.0433%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild

brakedown open:
open Brakedown<Fr>/12   time:   [165.62 ms 166.54 ms 167.84 ms]
                        change: [-1.0451% -0.3270% +0.3985%] (p = 0.38 > 0.10)
                        No change in performance detected.
open Brakedown<Fr>/14   time:   [290.08 ms 292.72 ms 294.83 ms]
                        change: [-1.8968% -0.9854% -0.1286%] (p = 0.04 < 0.10)
                        Change within noise threshold.
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) low severe
open Brakedown<Fr>/16   time:   [463.86 ms 466.71 ms 469.39 ms]
                        change: [-1.2915% -0.6964% -0.0752%] (p = 0.06 < 0.10)
                        Change within noise threshold.
open Brakedown<Fr>/18   time:   [776.43 ms 784.75 ms 792.93 ms]
                        change: [-1.4276% -0.3743% +0.7449%] (p = 0.50 > 0.10)
                        No change in performance detected.
open Brakedown<Fr>/20   time:   [1.4922 s 1.4989 s 1.5061 s]
                        change: [+0.5632% +1.0813% +1.6360%] (p = 0.00 < 0.10)
                        Change within noise threshold.

Hello, all. I ran some more benchmarks, this time comparing performance of the previous commit (hash: e20f67e8122b26f1adea8847d491c65d41588ab1) and the current commit where we use two different matrices for representation (hash: cf2af292f36f75fd5d5097440b474530e8c4d89f). I increased the number of samples back to 100 and tested for 12, 14, ..., 26 variables. The results can be seen below:
Benches for row-mul commit before the split:
commit Brakedown<Fr>/12 time:   [2.9039 ms 2.9331 ms 2.9662 ms]
                        change: [+1.9360% +3.0011% +4.1764%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 19 outliers among 100 measurements (19.00%)
  5 (5.00%) low mild
  2 (2.00%) high mild
  12 (12.00%) high severe
commit Brakedown<Fr>/14 time:   [6.4383 ms 6.5425 ms 6.6472 ms]
                        change: [+10.308% +12.064% +14.264%] (p = 0.00 < 0.10)
                        Performance has regressed.
commit Brakedown<Fr>/16 time:   [13.133 ms 13.326 ms 13.533 ms]
                        change: [+8.0164% +9.9897% +11.894%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 13 outliers among 100 measurements (13.00%)
  9 (9.00%) high mild
  4 (4.00%) high severe
commit Brakedown<Fr>/18 time:   [35.232 ms 37.033 ms 39.095 ms]
                        change: [+4.9755% +10.082% +16.182%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 20 outliers among 100 measurements (20.00%)
  5 (5.00%) high mild
  15 (15.00%) high severe
commit Brakedown<Fr>/20 time:   [102.61 ms 104.01 ms 105.48 ms]
                        change: [+14.356% +15.980% +17.669%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
commit Brakedown<Fr>/22 time:   [357.59 ms 361.13 ms 364.82 ms]
                        change: [+22.122% +24.132% +26.196%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
commit Brakedown<Fr>/24 time:   [1.3293 s 1.3367 s 1.3440 s]
                        change: [+12.700% +14.745% +16.851%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 13 outliers among 100 measurements (13.00%)
  5 (5.00%) low severe
  4 (4.00%) low mild
  3 (3.00%) high mild
  1 (1.00%) high severe
commit Brakedown<Fr>/26 time:   [5.8552 s 5.9194 s 5.9828 s]
                        change: [+15.617% +16.948% +18.203%] (p = 0.00 < 0.10)
                        Performance has regressed.

Benches for row-mul open before the split:
open Brakedown<Fr>/12   time:   [167.30 ms 167.95 ms 168.66 ms]
                        change: [+1.3521% +1.9245% +2.5151%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 7 outliers among 100 measurements (7.00%)
  6 (6.00%) high mild
  1 (1.00%) high severe
open Brakedown<Fr>/14   time:   [292.16 ms 293.83 ms 296.49 ms]
                        change: [+1.1037% +1.8393% +2.8880%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  1 (1.00%) high severe
open Brakedown<Fr>/16   time:   [454.98 ms 456.31 ms 457.70 ms]
                        change: [-0.5712% -0.1427% +0.3201%] (p = 0.53 > 0.10)
                        No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high mild
open Brakedown<Fr>/18   time:   [762.69 ms 764.09 ms 765.51 ms]
                        change: [-1.3052% -1.0474% -0.7667%] (p = 0.00 < 0.10)
                        Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) low mild
  2 (2.00%) high mild
open Brakedown<Fr>/20   time:   [1.4339 s 1.4359 s 1.4380 s]
                        change: [-1.2009% -0.9533% -0.7160%] (p = 0.00 < 0.10)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
open Brakedown<Fr>/22   time:   [3.0313 s 3.0353 s 3.0393 s]
                        change: [-2.1096% -1.9576% -1.7912%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
open Brakedown<Fr>/24   time:   [6.7704 s 6.7865 s 6.8036 s]
                        change: [-4.6163% -4.3867% -4.1329%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  6 (6.00%) low mild
  1 (1.00%) high severe
open Brakedown<Fr>/26   time:   [15.504 s 15.519 s 15.534 s]
                        change: [-9.6497% -9.5204% -9.3999%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild

Benches for row-mul commit after the split:
commit Brakedown<Fr>/12 time:   [3.3879 ms 3.4143 ms 3.4413 ms]
                        change: [-3.7507% -2.3345% -0.9506%] (p = 0.00 < 0.10)
                        Change within noise threshold.
commit Brakedown<Fr>/14 time:   [5.8168 ms 5.8382 ms 5.8600 ms]
                        change: [-12.988% -11.342% -9.6152%] (p = 0.00 < 0.10)
                        Performance has improved.
commit Brakedown<Fr>/16 time:   [12.002 ms 12.115 ms 12.251 ms]
                        change: [-4.4517% -2.7064% -0.9400%] (p = 0.00 < 0.10)
                        Change within noise threshold.
Found 11 outliers among 100 measurements (11.00%)
  2 (2.00%) high mild
  9 (9.00%) high severe
commit Brakedown<Fr>/18 time:   [33.525 ms 33.641 ms 33.751 ms]
                        change: [+2.1580% +2.5678% +2.9554%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low severe
commit Brakedown<Fr>/20 time:   [89.241 ms 89.678 ms 90.115 ms]
                        change: [-0.3164% +0.4234% +1.1952%] (p = 0.28 > 0.10)
                        No change in performance detected.
Found 13 outliers among 100 measurements (13.00%)
  11 (11.00%) low mild
  1 (1.00%) high mild
  1 (1.00%) high severe
commit Brakedown<Fr>/22 time:   [287.09 ms 290.92 ms 294.77 ms]
                        change: [+3.5402% +5.2769% +6.8493%] (p = 0.00 < 0.10)
                        Performance has regressed.
commit Brakedown<Fr>/24 time:   [1.1451 s 1.1650 s 1.1852 s]
                        change: [+0.8084% +2.6246% +4.7030%] (p = 0.01 < 0.10)
                        Change within noise threshold.
commit Brakedown<Fr>/26 time:   [5.0550 s 5.0616 s 5.0681 s]
                        change: [-0.3093% -0.1161% +0.0680%] (p = 0.24 > 0.10)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Benches for row-mul open after the split:
open Brakedown<Fr>/12   time:   [164.10 ms 164.78 ms 165.45 ms]
                        change: [-1.8447% -1.1393% -0.4156%] (p = 0.02 < 0.10)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild
open Brakedown<Fr>/14   time:   [287.37 ms 288.52 ms 289.66 ms]
                        change: [-2.2503% -1.4332% -0.4925%] (p = 0.02 < 0.10)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild
open Brakedown<Fr>/16   time:   [455.43 ms 456.96 ms 458.48 ms]
                        change: [-2.7542% -2.0879% -1.4225%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
open Brakedown<Fr>/18   time:   [770.61 ms 772.18 ms 773.70 ms]
                        change: [-2.6476% -1.6015% -0.5337%] (p = 0.01 < 0.10)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) low mild
open Brakedown<Fr>/20   time:   [1.4469 s 1.4497 s 1.4526 s]
                        change: [-3.7760% -3.2807% -2.8032%] (p = 0.00 < 0.10)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
open Brakedown<Fr>/22   time:   [3.0931 s 3.0959 s 3.0986 s]
                        change: [+4.1286% +4.2684% +4.4131%] (p = 0.00 < 0.10)
                        Performance has regressed.
open Brakedown<Fr>/24   time:   [7.0910 s 7.0979 s 7.1046 s]
                        change: [+6.4681% +6.6200% +6.7733%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
open Brakedown<Fr>/26   time:   [17.136 s 17.152 s 17.169 s]
                        change: [+10.847% +10.996% +11.146%] (p = 0.00 < 0.10)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

What @mmagician said is more efficient than having two representations simultaneously. However, I propose finding better names as we have put it in src/utils.rs, and Hyrax and Ligero will use only RowMajorMatrix. Maybe Matrix and CMatrix?
@DimitrisPapac How come the new technique performs weaker in commit in the last benchmark? By the way, notice that the "changes" written in the benchmark result are compared to the previous run of benches, so you may want to clear the previous result ( I don't remember how ).

authors: DimitrisPapac autquis mmagician

repo: HungryCatsStudio/poly-commit


text:
Same Job submitted twice

@dos65
Hi,
When I send an API request to mist server from Mist UI, it submits the same job twice (with same ID) to the spark cluster. I can see this from the spark cluster UI. Although the result is returned from the first job execution result.
Below is the screenshot attached:

Please check this..!!
Thanks

Thanks for reporting!
Fixed in #203

source: gharchive/issue

repo: Hydrospheredata/mist

license_type: permissive

license_source: bigquery


text:
Rebase docker image to use official repositories

Current image: anapsix/alpine-java:8
Proposed image: openjdk:8u151-jdk-alpine3.7
Benefits:

Official Image
Alpine 3.7 vs Alpine 3.6
Smaller

anapsix/alpine-java         8                     40fe4a000c2e        4 days ago          125MB
openjdk                     8u151-jdk-alpine3.7   224765a6bdbe        7 weeks ago         102MB

I also suggest pulling in the spark/mist requirements from the official repositories rather than local files:
SPARK
ENV SPARK_VERSION="2.3.0"
ENV SPARK_HOME="/usr/share/spark"

# Auto-extract spark into the destination folder
RUN mkdir -p ${SPARK_HOME} \
 && wget -O- http://mirror.reverse.net/pub/apache/spark/spark-${SPARK_VERSION}/spark-${SPARK_VERSION}-bin-hadoop2.7.tgz \
  | tar -xz -C ${SPARK_HOME} --strip-components 1

MIST
ENV MIST_VERSION="1.0.0-RC12"
ENV MIST_HOME="/usr/share/mist"

# Auto-extract mist into the destination folder
RUN mkdir -p ${MIST_HOME} \
 && wget -O- http://repo.hydrosphere.io/hydrosphere/static/mist-${MIST_VERSION}.tar.gz \
  | tar -xz -C ${MIST_HOME} --strip-components 1

It's a good suggestion about base image.
About docker building - the way you suggest takes more time - we always have the same distributives locally so there is no reason to increase release build time


text:
Using SAX instead of DOM for type inference and Row conversion

Building a full DOM tree for each XML record is very expensive and unnecessary, since we only need to traverse the contents once for either type inference or Row conversion. Using SAX can probably win much better performance.

For this issue, I got a reason to use DOM parser. Mostly the main reason is to infer ArrayType. In order to infer ArrayType, it needs to check all the keys (elements) in each record in a XML and decide it is a StructType or ArrayType if they have children.
At the first I used StAX, but I realised that it actually works like DOM (It just read all the elements for a record first). So I changed to DOM https://github.com/HyukjinKwon/spark-xml/issues/2.
Maybe there is another clever way but I could not come up with one. It would be great if there is a good way to resolve the problem with SAX.

authors: HyukjinKwon liancheng

repo: HyukjinKwon/spark-xml


text:
[EU] Login fails: "Invalid request body - Invalid parameter."

Hyundai / Kia Connect version: 3.3.7
Python version: 3.9.17
Operating System: Linux

Description
Error at login:
Traceback (most recent call last):
  File "/root/kia-hyundai-tracker/VehicleClient.py", line 251, in loop
    self.vm.check_and_refresh_token()
  File "/root/kia-hyundai-tracker/venv/lib/python3.9/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 120, in check_and_refresh_token
    self.initialize()
  File "/root/kia-hyundai-tracker/venv/lib/python3.9/site-packages/hyundai_kia_connect_api/VehicleManager.py", line 64, in initialize
    self.token: Token = self.api.login(self.username, self.password)
  File "/root/kia-hyundai-tracker/venv/lib/python3.9/site-packages/hyundai_kia_connect_api/KiaUvoApiEU.py", line 198, in login
    device_id = self._get_device_id(stamp)
  File "/root/kia-hyundai-tracker/venv/lib/python3.9/site-packages/hyundai_kia_connect_api/KiaUvoApiEU.py", line 1104, in _get_device_id
    _check_response_for_errors(response)
  File "/root/kia-hyundai-tracker/venv/lib/python3.9/site-packages/hyundai_kia_connect_api/KiaUvoApiEU.py", line 110, in _check_response_for_errors
    raise APIError(f"Server returned: '{response['resMsg']}'")
hyundai_kia_connect_api.exceptions.APIError: Server returned: 'Invalid request body - Invalid parameter.'

The native mobile app still works: tested logout -> login -> force refresh.

I am having the similar issue but different error, will check further.
get_cached_vehicle_status response: {'retCode': 'F', 'resCode': '4017', 'resMsg': 'Invalid request value - Invalid Application Id.', 'msgId': '5a66ce31-4d76-4e77-bc63-ca646d0302d9'}

Hi.
Hi have similar issue but I can not login in the mobile app neither (it says "Network error").
EU user.

I have the same error with fault code below:
Unexpected error fetching kia_uvo data: Server returned: 'Invalid request body - Invalid parameter.'
EU user as well. Everything is on the latest version.

I had to switch to the Kia Connect app on my (Android) phone since the UVO Connect app seems to be no longer working.

I had to switch to the Kia Connect app on my (Android) phone since the UVO Connect app seems to be no longer working.
EU User

Just got the confirmation from KIA Netherlands that the UVO app should be replaced by the "KIA Connect" app and this probably means that the API used needs to change (for the EU?).

Please let's keep the comment stream clean as much as possible so in case something important pops up, we don't miss it.
I am working on this and trying to figure out what has changed in the login flow.
Also checking other repositories if they have a solution in place.
Me too style comments are not helpful, while i understand the frustration here, let's be patient.

I have sniffed the login call and this is currently send:
POST /api/v1/spa/notifications/register HTTP/1.1
Host: prd.eu-ccapi.hyundai.com:8080
Authorization:
Ccsp-Device-Id:
Ccsp-Service-Id: 6d477c38-3ca4-4cf3-9557-2a1929a94654
Offset: 2
Ccsp-Application-Id: 014d2225-8495-4735-812d-2616334fd15d
Stamp: dGpcIp3dP0dLfkNRU........n3rTaiKUOSDEgtA=
Ccuccs2protocolsupport: 0
Content-Type: application/json; charset=UTF-8
Content-Length: 242
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.12.12
Connection: close

{"pushType":"GCM","pushRegId":"er0DIxzJSXyEBT1qV2CgNm:APA91bHW......a4DrJybqqJ8tVgiZ6HnZCizq0MM3v1kqgjVzlWML1sUudd56m5Ikpw54wEmKEVcsg2ZEs62q5nkWZXNZp2BKLheAD8qXgwTnHQR4FiyJio_aOOaRQjTmVwMwC_","uuid":"a2563e13-2696-42a3-b8a9-7fcfc041dbb4"}

I notice the following differences:
USER_AGENT_OK_HTTP: str = "okhttp/3.12.0" so not okhttp/3.12.12
pushRegId is 1 in our codebase
Connection is Keep-Alive in our code base
In our codebase there is no header Ccsp-Device-Id:
In our codebase there is no header Offset
In our codebase we generate a random uuid
In the example I added ..... to Stamp and pushRegId
Not sure if this can help, but maybe the missing/changed pieces are mandatory?

Following along on the bluelinky side.  App ID has changed and this may impact the stamps. I have a draft PR created but until the stamps are also updated in the repo it errors.  So far we only have one of the new app IDs.  @ZuinigeRijder  are you in the discord for bluelinky?

PRs are into the stamp repo and here.   It am hearing good things about this potentially working but until merged I can't confirm.

Following along on the bluelinky side. App ID has changed and this may impact the stamps. I have a draft PR created but until the stamps are also updated in the repo it errors. So far we only have one of the new app IDs. @ZuinigeRijder are you in the discord for bluelinky?

No, I am not on discord bluelinky. In the PR I see that only the AppId of Kia is known and not for Hyundai yet. How did they find the AppId for Kia? Did the decode the App? Or looked at the API calls?

Other one is known in chat just no pr for it yet.

Invalid request body is caused by CGM in notify call. When changed to APNS it probably works.

@ZuinigeRijder are you sniffing this on android or ios? I am having issues on android sniffing (ssl pinning on the app side) and I do not have access to a mac to use emulator.

@fuatakgun I sniff using NoxPlayer emulator on Windows 10 and Android phone emulating Samsung Galaxy S8.
How to sniff
For the ones who also want to be able to sniff the calls from the App, this is how I did it (do it at your own risk):

Installed NoxPlayer emulator in Windows 10 and emulate Android 5

Installed Burp Suite Community Edition on Windows 10

Then followed this guide without installing Bluelink App yet: [Android App Traffic Decryption using Nox Player - Windows Guide](https://archive.ph/k1hIG)

Disabled Root (because Bluelink App will not work on rooted device) and proxy in Android emulator, installed Bluelink App and login with my credentials

Enabled proxy and opened Bluelink App and in the Burp Suite the decoded https requests/responses were available

thanks for sharing, can you share the stamp you have used (it is supposed to safe as we all are using the shared stamps earlier)

@fuatakgun
Stamp: dGpcIp3dP0dLfkNRUItk/sCdmouaEMW4JAlLv76lGxrWLqMbn3rTaiKUPyLFgtk=

stamp format seems to be inline with what we are generating... interesting, I will keep here updated

I have it working, when I fill in the pushRegId from the sniffing.
In the code base, the following is in the KiaUvoApiEU.py:
line 1083:     registration_id = 1

If I change this into:
registration_id = "er0DIxzJSXyEBT1qV2CgNm:APA91bHWKa9uBfYk4.....JybqqJ8tVgiZ6HnZCizq0MM3v1kqgjVzlWML1sUudd56m5Ikpw54wEmKEVcsg2ZEs62q5nkWZXNZp2BKLheAD8qXgwTnHQR4FiyJio_aOOaRQjTmVwMwC_"

Then the calls are working!
I have added .... to registration_id, because I do not know if this is specific for my account or not.

agreed, it is specific to your account, so they are needing for a specific registration id for push notification probabaly, let me double check

registration id is specific to your device and app installation, so google push is targeting that specific instance to send the push notifications.
interestingly, bluelinky is using valid registration IDs and still failing on the login flow.
https://github.com/Hacksore/bluelinky/blob/4a13160d31cb67a877b5b9303720d8f056806ebf/src/controllers/european.controller.ts#L208

Invalid request body is caused by CGM in notify call. When changed to APNS it probably works.

GCM vs APNS is about google and apple push notifications system

registration id is specific to your device and app installation, so google push is targeting that specific instance to send the push notifications.
interestingly, bluelinky is using valid registration IDs and still failing on the login flow.
https://github.com/Hacksore/bluelinky/blob/4a13160d31cb67a877b5b9303720d8f056806ebf/src/controllers/european.controller.ts#L208

The only thing I did is changing the pushRegId to the value I am sniffing, the rest of the source code is the same. In combination with the recently adapted GET /neoPix/bluelinky-stamps/master/hyundai-014d2225-8495-4735-812d-2616334fd15d.v2.json call, it works now for me.
Are you sure "credentials.gcm.token" (I assume the credentials are stored in GIT somehow) is exactly what needs to be provided by pushRegId? Or are there double quotes missing?
Is it working when the pushRegId is hardcoded, instead of getting via a API call?

this ID is assigned by google servers to each device/app installation combination and many brands and services are using google services to send push notifications using these IDs. So, under bluelinks using credentials.gcm.token, actual ID is being used after it was received by google servers. So, it is not static or fixed.

I just wanted to make sure that the call:
const credentials = await pr.register(this.environment.GCMSenderID);

and thereafter:
pushRegId: credentials.gcm.token

Gives the same value as is send in what what can be sniffed in the Bluelink App. So therefore I asked to try if hardcoding this value instead of getting it programmatically will be correct. Especially, because previously the pushRegId: 1 was working (don't care).
As far as I can see the bluelinky source code has a constant GCMSenderId, so maybe the GCMSenderID has been changed? At least I suspect the result of the code can be that the pushRegId is not what is expected.
GCMSenderID: '414998006775'

@ZuinigeRijder https://discord.gg/UJqjgNQ

Hello,
I have this error ("Invalid request body - Invalid parameter.") on HomeAssistant.
Some ideas to solve it on HA?
Thanks you

Update on the problem resolution.
The hyundai_kia_connect_api stopped working for EU. Both for Kia and Hyundai, since 29 June 2023.
A fix is found for EU Hyundai, the Hyundai Bluelink server appeared to have a stricter check on pushRegId.
I can confirm that v3.3.8 fixes the problem for EU Hyundai. My monitor tool works in combination with v3.3.8.
For EU Kia the problem is NOT fixed yet and there is worked on by @cdnninja and others. There needs at least a new AppId and stamp generation to be made for EU Kia.

I confirm this works again with 3.3.8 patch. Thanks a lot for your prompt action :-)
Greetings from France.

Release 3.3.10 fixes Kia (Hyundai was already fixed by 3.3.8). Thanks to everyone involved!

The solution for EU Kia invalidates the EU Hyundai solution. See this issue: https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/issues/354

Should be fixed by release 3.3.11.

authors: PierreLevres ZuinigeRijder cdnninja coditmarc dcaplopu faipassa fuatakgun micro521 osorojo92 zulufoxtrot

license: MIT

license_source: github-api


text:
Add a Gitter chat badge to README.md

IAG-NZ/KudosPlatform now has a Chat Room on Gitter
@PlagueHO has just created a chat room. You can visit it here: https://gitter.im/KudosPlatform/Lobby.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable

Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable

source: gharchive/pull-request

authors: gitter-badger liambinnsconroy

repo: IAG-NZ/KudosPlatform

license: mit


text:
Update IBAX_White_Paper to V2022.10.18

Update IBAX_White_Paper to V2022.10.18

Hello there We only make daily clicks for about 1 year. There is an error in the IBAX Tweet address wallet records, please register by mail. What do you think about this? How do we do? Do you have any information? Thank you from now

repo: IBAX-io/whitepaper


text:
Use BFG to remove any old credentials data.

https://help.github.com/articles/remove-sensitive-data/

Cleaned all branches of sensitive files and deleted any unnecessary branches.
Also updated the wiki with how to use the BFG Repo Cleaner tool:
https://github.com/IBM-Swift/BluePic/wiki/Using-BFG-Repo-Cleaner-tool-to-remove-sensitive-files-from-your-git-repo

authors: rolivieri xanderbuck

repo: IBM-Swift/BluePic


text:
FileResourceServer must be explicitly enabled when initializing Router

Description

This is a redo of #1343 based on feedback in that thread. Whereas the code in that PR implicitly disabled the FileResourceServer for a Router if that Router had any elements/handlers, this PR changes Router to add a new optional withResourceServer parameter to its initializer which only starts the FileResourceServer if explicitly set to true.
Motivation and Context

@djones6 recommended this approach rather than the one I had chosen in the original PR, and I like his idea better than mine too.  As stated there, this may break expected functionality with the Kitura CLI tool.
How Has This Been Tested?

As with the other PR, existing tests testing the FileResourceServer functionality have been tweaked, and a new test has been added to ensure the functionality is not present by default.
Checklist:

[x] If applicable, I have updated the documentation accordingly.
[x] If applicable, I have added tests to cover my changes.

Okay, tweaks made and pushed. But yes, I'm hoping this latest commit can be reverted for Kitura 3, as as I've said before, the current behavior is arguably a bug.

@NocturnalSolutions this looks good, thanks.  I'm pushing a small change to reverse the order in which we check whether there's a FileResourceServer vs. checking the path, since the latter is more expensive and we can skip it if the welcome page is disabled.

Is there a timeline on when this will be available for a released version of Kitura?

Perhaps next week, or maybe the week after.

authors: NocturnalSolutions TaborKelly djones6 ianpartridge

repo: IBM-Swift/Kitura


text:
Eliminate potential reference loops within RouterResponse lifecycle functions

Description
Kitura provides in RouterResponse life cycle hooks, i.e. places where functions/closures can be invoked during the life cycle of the request. In some cases the closures used to implement these hooks cause object reference loops. This in turn causes memory leaks.
This PR provides a set of functions to reset the life cycle functions each back to their initial value, a no-op function. This breaks the reference loop and fixes the memory leak.
Motivation and Context
Fix issue IBM-Swift/Kitura#879
How Has This Been Tested?
@djones6 Ran memory leak tests and verified the leaks went away.
I also ran the Kitura unit tests on both macOS and Linux.
Checklist:

[ ] I have submitted a CLA form
[ ] If applicable, I have updated the documentation accordingly.
[ ] If applicable, I have added tests to cover my changes.

👍

authors: na-gupta shmuelk


text:
How to use it in a private pod?

Hi,
I'm implementing a private pod which requires openssl. Can I use your files for that? If so how can I do it?

Closing due to inactivity.  Re-open if still an issue.

authors: SanyasiraoM billabt

repo: IBM-Swift/OpenSSL


text:
Code Cleanup needed

Describe the bug

p_source_key in add_any_resources.sql is unused (corresponding call needs update)
com.ibm.fhir.persistence.jdbc.dao.impl.SetTenantDAO is unused

Additional context
n/a

PR waiting review

repo: IBM/FHIR


text:
CP4D admin user - use API key for deployer work

Currently the deployer always uses the admin user password to authenticate to Cloud Pak for Data. Rather than using the password, which may be reset by the user for convenience, use the API key.

[ ] At initial installation, issue an API key for the admin user and create a vault secret
[ ] At subsequent runs, use API key to authenticate. If this does not work, try the admin password in the k8s secret, or the vault secret.

Concluded that this may impact the user's use of API keys.

repo: IBM/cloud-pak-deployer


text:
Remove unwanted content from npm package

PR summary
build: Replace .npmignore with files allow list
Excludes the .ts source files from the package.
Fixes: #9
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the
Angular Commit Message Guidelines.
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[x] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

tsc-publish uses .npmignore to copy everything except what is listed in that file to the dist dir.
This includes *.ts source files and tsconfig.json.
Also these files are accidentally packaged:

.bumpversion.cfg
junitreports folder

What is the new behavior?

Removing the .npmignore means tsc-publish uses it's default copy (only README/LICENSE/CHANGELOG/package.json) and compiled ts code instead of copying everything except the ignored files.
Using the files allow list in package.json prevents accidentally publishing content we don't want to (such as new test reports and version configuration), which we had already missed from adding to .npmignore.
Using this approach the package will no longer include:

junitreports/
.bumpversion.cfg
tsconfig.json
*.ts souce files

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

I checked the package content both locally and in the staging repository.
I also ran the gauge suite using the staging package and there were no unexpected failures.

For the ref: https://docs.npmjs.com/files/package.json#files
Package content: https://cloudant-sdks-jenkins.swg-devops.com/blue/organizations/jenkins/SDKs%2Fcloudant-node-sdk/detail/9-package-content/2/pipeline#log-415
Seems to be working fine.

Using this approach the package will no longer include:

junitreports/
.bumpversion.cfg
tsconfig.json
*.ts souce files

I see only the index.ts file now excluded from the *.ts source files.
Is it intentional that thelib/*.ts, auth/*.ts, cloudant/*.ts files are kept in the package then?
The suggestion in the issue to remove the *.ts files but keep the *.js and the *d.ts files. With the removal of the dist folder now all *d.ts are gone.

authors: eiri mojito317 ricellis

repo: IBM/cloudant-node-sdk


text:
Can you publish roadmap for Production Release for IOS ?

Currently this support only IOS simulator.. Can you please confirm when can we expect the final General release for IOS devices ?
Road map for Android will also help

Hello @rekhakm this is the Linux toolkit GitHub and your questions are about iOS and Android. I will refer you to this issue in our iOS GitHub repository; https://github.com/IBM/fhe-toolkit-ios/issues/13. Feel free to add a comment there or a thumbs up to show support for iOS native execution without relying on the simulator.
As for android support, that is on hold indefinitely while we work on other projects. If there is interest in Android support feel free to open a tracker issue here: https://github.com/IBM/fhe-toolkit-android/issues and hopefully others will give it a thumbs up to indicate strong support. Right now our team is not large enough to support all these platforms without a serious showing of interest in the community.

authors: dowem rekhakm

repo: IBM/fhe-toolkit-linux


text:
asset directory not loading

Asset Directory is broken, will not load in Xcode.  The reason is because the json contains comments and that has broken it.

Feel free to close if the merge I just did sorts this one :)

repo: IBM/fhe-toolkit-macos


text:
image labels changed

Changed image labels on two files.

/assign @kgcarr

/lgtm

/lgtm

authors: kgcarr macossay-db

repo: IBM/ibm-auditlogging-operator


text:
fix: external limiter implementation

add missing handlers for error/success reporting
fix the retries property in transport (allow 0)
handle changing limits on AsyncSemaphore when no tasks are being processed
set the initial limit to the number of remaining limits (not the maximal one)
set limit to 1 in case of an error

coverage: 95.196% (-1.3%) from 96.465%
when pulling 54600fdfbbf0a6792de8fcaf78973f2ad487ff4f on update-external-limiter
into aee2e66823ed9611a335f30c4985cb73aa2cc611 on main.

repo: IBM/ibm-generative-ai


text:
version bump for 3.19.3 LTSR

https://github.ibm.com/IBMPrivateCloud/roadmap/issues/54397

@ujjwalchk-it and @vijayanjay  As we are keeping IAM operator in consistent with CS LTSR version, I have bumped the version from 3.19.1 directly to 3.19.3

repo: IBM/ibm-iam-operator


text:
SOFTLAYER-BLOCK provider VolumeGet returs empty Az and Region

Printing returned object.
Region is empty
Az is empty
and a few other fields.
CL vol: &{VolumeID:54065687 Provider:SOFTLAYER-BLOCK VolumeType:VOLUME-Block ProviderType:ENDURANCE_BLOCK_STORAGE Capacity:0xc0004bf9d8 SnapshotSpace:0xc0003d2c30 Iops:0xc0003c0270 Tier:0xc0003c01d0 Region: Az: BillingType: CreationTime:2018-10-24 16:54:56 -0500 -0500 ServiceOffering:<nil> VolumeNotes:map[]}```

We will fix it, I hope this is not a blocking?

authors: arahamad depohmel

repo: IBM/ibmcloud-storage-volume-lib


text:
feat: added support for provider apis for direct link

PR summary
This PR adds the support for direct link provider apis
Fixes: <! -- link to issue -->
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[x] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

What is the new behavior?

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 0.8.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

repo: IBM/networking-java-sdk


text:
case validation should provide an option to allow case to start with underscore("_")

The example is as follow
"Foo": {
  "type": "object",
  "properties": {
    "_links": { "$ref": "#/definitions/Bar" }
  }
}

@hudlow - any thoughts on this issue ?

We would not consider this permissible in standard snake case, so if we supported this, it would need to be with an additional configuration option or as another casing variant, in my opinion. @mkistler, any additional thoughts?

@hudlow I see your point and agree with that. need a casing variant that allow prefixing it with an underscore.

@yishanhe we recently added support to write your own custom rules using Spectral. I think this would be a good use case of a custom rule you can write.

Closing as this can now be accomplished with a custom Spectral rule.

authors: hudlow jorge-ibm mkistler yishanhe

repo: IBM/openapi-validator


text:
fix: bump minimum node version to 16

PR summary
This commit modifies the validator's startup script (packages/validator/src/cli-validator/index.js) so that it requires node 16 as the minimum version of the runtime. We had previously updated the package.json to cover the install-related steps.
PR Checklist
General checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] Dependencies have been updated as needed
[ ] .secrets.baseline updated as needed?

Checklist for adding a new validation rule:

[ ] Added new validation rule definition (packages/ruleset/src/rules/*.js, index.js)
[ ] If necessary, added new validation rule implementation (packages/ruleset/src/functions/*.js, updated index.js)
[ ] Added new rule to default configuration (packages/ruleset/src/ibm-oas.js)
[ ] Added tests for new rule (packages/ruleset/test/*.test.js)
[ ] Added docs for new rule (docs/ibm-cloud-rules.md)

It seemed like this change should be a "feat" type commit, but happy to change that if needed.
Normally this type of change might be a feat, but we already were requiring node 16 during install, so maybe this change just amounts to a "fix"?

:tada: This PR is included in version 1.0.3 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.1 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

authors: ibm-devx-sdk padamstx


text:
fix(IAM Access Groups): regen service and add examples

PR summary
Updates the IAM Access Groups service after recent API changes, and adds working examples to the project.
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

What is the new behavior?

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 0.15.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: ibm-devx-automation padamstx

repo: IBM/platform-services-java-sdk


text:
Showing next 10 minutes was broken

While issued a command " Showing Next 10 Mins", the display back to 2D UK grey-and-white map where no ISS displayed.  Similar to "Showing Last 10 Mins", the display behaves the same.

This is working now. I hypothesize it was an issue with the worldmap module that is now fixed.

authors: dionj scottdangelo

repo: IBM/satellite-tracker


text:
Improve design for token refresh

This PR improves the design for token refresh by decoupling the refresh logic from active requests.
API requests use the most recent token available, but a refresh request is initiated whenever we are within the "refresh interval".  The refreshDate is updated whenever a refresh request is initiated to avoid a flood of refresh requests, potentially triggering a rate limit by the token source.

@ricellis I just pushed an update that adds a serial dispatch queue for performing the token refresh.  This will serialize the updates to the refreshDate.  I think the code is also much clearer than my original attempt.

I'm going to rework this PR so that both the expireTime and refreshTime are captured and handled, to be consistent with the Node SDK.

:tada: This PR is included in version 1.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: ibm-devx-automation mkistler

repo: IBM/swift-sdk-core


text:
Add a Mesh for Data whitepaper

I am looking for feedback:

Any inaccuracies?
What is missing?
How to include more information on implicit copy controller?

What is the status of this PR? Do we need to close it? @ronenkat

Closing, please open an issue to discuss. I don't think that there's place for this doc in its current technical form in the website. It creates a lot of duplications and is subject to being outdated very quickly.

repo: IBM/the-mesh-for-data


text:
Select a license

I propose the GPL v3 or later. With this license, anyone selling software based on this code is obliged to also publish the source code under GPL v3 to their customers.
Any other suggestions?

Personally I do not like the GPL v3. Be aware, that the license questions often depends on the framework used...

authors: ThiasG tpokorra

repo: ICCM-EU/BOF


text:
🛑 IDR (image 3125776) is down

In fd39eb4, IDR (image 3125776) (https://idr.openmicroscopy.org/webclient/?show=image-3125776) was down:

HTTP code: 0
Response time: 0 ms

Resolved: IDR (image 3125776) is back up in 880d2bf after 21 minutes.

repo: IDR/upptime


text:
🛑 IDR (image 648950) is down

In 2762589, IDR (image 648950) (https://idr.openmicroscopy.org/webclient/?show=image-648950) was down:

HTTP code: 0
Response time: 0 ms

Resolved: IDR (image 648950) is back up in 3a2a851 after 54 minutes.


text:
Incorrect Text on view volunteers page

Subject of the issue
Incorrect text on view volunteers page
Steps to reproduce
visit https://keralarescue.in/volunteerdata/ & check the Tab Name
Expected behaviour
It should be
Name - പേര്
Actual behaviour
It shows Name - പേര ,

so when translated, it changes literally to Guava (if english), similarly for other languages
PFA  the screenshot

This is the line , https://github.com/IEEEKeralaSection/rescuekerala/blob/master/mainapp/templates/mainapp/volunteerview.html#L54

repo: IEEEKeralaSection/rescuekerala


text:
Create uDev rules for multiple webcams.

I'm trying to create udev rules so that when we plug in 2 cameras, we can guarantee that they will always be connected to the correct interfaces.
I collected the udev info for all of the cameras that we have.
(collected using udevadm info -a /dev/videoX)
I wrote these dev rules and saved them in /etc/udev/rules.d/81-camerarules.
KERNEL=="video*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0024", ATTRS{serial}=="081C01D0", SYMLINK+="a270"

But this isn't working. No interface or symbolik link is being created.
update:
A symbolik link can be created using ln -s target_path link_path.

udev rules now work.
Actually using them on openCV is not as straightforward as I thought:
http://stackoverflow.com/questions/35821763/create-opencv-videocapture-from-interface-name-instead-of-camera-numbers

fixed on branch camera_rules 7556d1e42b3e3511e9d28e09c5d52bca3777efa0
The relevant file needs to go to /etc/udev/rules.d/81-camera.rules.
I'm not sure if the setup script will automatically copy it there but someone may have to do this manually.

repo: IEEERobotics/bot


text:
Replace Yarn with pnpm for build reliability

Currently, the build process often fails when using Yarn due to the following error:
Error: Extracting tar content of undefined failed

This issue causes builds to be unreliable and slows down development. After researching alternative package managers, pnpm has been identified as a more reliable and efficient option for our workflow.
Proposed Solution

Replace yarn with pnpm for managing dependencies and the build process.
Update project documentation to reflect the new setup.
Ensure CI/CD pipelines are updated to use pnpm instead of Yarn.

Benefits

Improved build reliability.
Potential for reduced build times.

We should be able to use pnpm import to import the lock file to pnpm.
Also, we can remove post-install package (it's already available on npm and pnpm)

authors: samshara tnagorra

repo: IFRCGo/go-web-app


text:
Replace macros.rs with delegate crate

It's only necessary for libraries, and the macros module is private anyway.
By the way, what does this macro do?

This is fine as is, but if you want to you can broaden the scope of this PR to deleting the macro altogether.
The macro itself is a bit of a hack to implement a delegation pattern without a lot of boilerplate but there are now crates to do this like rust-delegate so it might be a good thing to just port usages to that.

I'm on it

Done!

Very nice.


text:
content to transport

Comment received from @stl-steve-moore
The many prior PCC content profiles referenced the PCC-1 transaction as required, but weasel language in that transaction made it a suggestion rather than a specification. Further, because there are many ways to exchange a document using PCC-1 by design, the customer who reads an IHE Integration Statement has no idea which mechanisms are supported by a product in conjunction with a content document.
This supplement is better than the other supplements in that it does not invoke PCC-1 as a requirement. Yet, it still falls short because it does not provide a mechanism to write an Integration Statement that clearly spells out what sharing mechanisms are supported.
There is a solution that can be tested here and adopted with other profiles if found worthy. You could add formal, named options to the Creator and Consumer actors that clearly indicate a document sharing mechanism. Those options are the usual suspects, but by explicitly naming them, I can now put that in my Integration Statement. As a customer, I can put that directly in my RFP rather than having to invent language.
We had many discussions years ago about this issue, but could never get past the "Do we list content first and transport second, or do we list transport first and content second?". Here is the chance to make a choice where the top level is now "Sharing content of document X" and the options are the sharing mechanisms. "Sharing content of document X" is the sIPS profile.

The IHE Integration Statement already has methods of showing that a product supports the various IHE Document Sharing transports. Thus there is no need to duplicate this functionality with named Options.  -- https://profiles.ihe.net/GeneralIntro/ch-F.html
For a product that supports sIPS, Content Creator; and supports the XDS, Document Creator as the transport would simply have two rows in their IHE Integration Statement. One for the sIPS Content Creator, and one for the XDS Document Creator.
This method has been the method used for PCC-1 and Content Creator / Content Consumer for a long time. This is not new with sIPS.
That said, I would certainly be willing to explain this to the readers of sIPS as we do expect the reader of sIPS may not be as aware of IHE as we have come to expect.
Would that satisfy your concern?

me
If they are only supporting $summary, then there is no way to express that in an IHE Integration Statement at all. This is a fine solution, but is not an IHE profile. Thus it is not declarable in an IHE Integration Statement.
the sIPS is a defined Profile, with defined Actors.
Note that sIPS does have discussion about how the Document Sharing "On-Demand" function may be implemented on the server side with $summary.
The option pathway you suggest requires me to define exhaustively all the combinations, and to keep them up-to-date every time ITI defines a new transport.
I get your point that an IHE Integration Statement with multiple content profiles and multiple transport profiles is not expressive enough when that system does not support All against All. I think these are the unusual situations, it is them that should have to come up with some solution.

me
I think you described what a Content Profile is. A Content Profile is any constraints on the content for a given use-case, and the defined specifics for the Mapping to metadata. It happens that sIPS did NOT define any content constraints, but it does have the section (https://profiles.ihe.net/ITI/sIPS/content.html#3593-specification).
Note that PCC-1 preceded the HIE Whitepaper by many years. We can't really change that fact. The HIE Whitepaper is also "informative" where PCC-1 is normative.  I tried very much to leverage the HIE Whitepaper.
PCC-1 role is have Actor names and definitions that can be used in a Content Profile. So that the Content Profile does not need to exhaustively list all of the transport profiles and actors each time it wants to say "Content Creator". PCC-1 also carries the general mapping, so each Content Profile doesn't need to replicate this.... Essentially PCC-1 is there because we love modularity, and hate repeating things.
The historic Content Profiles have faded into the past, but there is still hope. Andrea is writing a few new Content Profiles. So I think the modularity benefit is still useful.

@stl-steve-moore
PCC-1 is not normative. It says (paraphrase) that you can use transport A, B, C or anything that seems relevant.
I go back to my point about Integration Statements but with a different view. If I am a national deployment group, PCC-1 provides no help. If I want my national deployment to use XCA, I cannot point to PCC-1. I have to write/require XCA. The only tool that I have is to write in text that all participants in my national project shall use XCA.
I don't think that sIPS helps. I still have the same problem. There is no IHE tool to have me specify this for national deployment or for an individual purchaser. I guess you could say that my RFP would say "XCA". Great, I can say that. If my RFP points to PCC-1, that is not specific enough. If my RFP points to sIPS, that is not specific enough.

me
You might not have ONE thing to say, but you certainly have two things to say.

XCA Document Consumer, and
sIPS Content Consumer

.... there was far more discussion, but reproducing it here is likely of diminishing value. @stl-steve-moore is free to provide further comments, and to add new issues covering other topics we might have discussed.

discussed in committee. We do not want to add this and change precedent at this time.


text:
INFRA-2348: Fix ECL serialization

https://jira.ihtsdotools.org/browse/INFRA-2348

@zoliMolnar I've just read your comments on the INFRA ticket about non-deterministic behaviour and unit tests. Understood. Thank you.

Thank you!

authors: kaicode zoliMolnar

repo: IHTSDO/snow-owl


text:
A question about ToF estimation.

Because I want to test the accuracy of ToF first, I started the ToF extraction before the antenna array was configured. But the .pcap filesI got was different from the .pcap files you provided, and the subsequent ToF extraction would also be wrong.
Can ToF estimates be used without a configured antenna array? Is it feasible to estimate ToF without CSI?

Hi,
You need to configure the antenna and use CSI to remove time uncertainty that the ToF might contain.

I see the problem with ToF estimation. But if I want to process the timestamp myself, how can I only get the timestamp information without CSI?

And what is the time unit of the output of Compute_ToF_music.m?

The output is in meters

The output is in meters

Okay. Thanks for reply.

authors: alejandroBlancoPizarro crownz-sec

repo: IMDEANetworksWNG/UbiLocate


text:
When extracting the reference csi and tof measurements, the routers often reboots automatically.

At first, I connect antenna 1 of two routers. Then I extracting CSI using 1*4 configuration. After that, I start to extract ToF. Because it will happen the problem in #22 , I executes the  scripts on routers. Finally, I execute bash start_tof.sh name on pc. But the script blocks during the data saving phase, just like following image.

And after the block occurs for a while, the router will reboot, which means I need to retrieve the benchmark CSI again. I've tried it five times, it's been the same every time. So I can't get tof data corresponding to the reference CSI.
What's the reason? It's a really annoying problem.

Hi,
The problem with the rebooting could be that you executed more than one time reload.sh. If you execute two times reload, the router will reboot automatically. We are not sure about this behavior.
I recommend you to take CSI and ToF measurements separately if that is possible. If not possible, let me know.
Best,
Alejandro

Intuitively, it is possible to separate CSI and ToF measurements. But if the environment is changing dynamically, is there a mismatch between CSI and ToF measurements? How to deal with that?
I also have a thought that if executing a script to extract CSI and ToF at the same time is not feasible. Can I use the 4X4 MIMO packets obtained every 32 packets by the ToF script as the reference CSI in the case of using coaxial cable and power divider? After that, disconnecting the coaxial cable and using antenna to transmit and receive. Finally, the subsequent 4X4 MIMO packets were calibrated using the previously obtained reference CSI. Is this right?

Hi,
My answer below:
Can I use the 4X4 MIMO packets obtained every 32 packets by the ToF script as the reference CSI in the case of using coaxial cable and power divider?
Yes, you can do it. The idea of extracting from time to time the CSI is to enable a join extraction of tof and CSI.
Finally, the subsequent 4X4 MIMO packets could be calibrated using previously obtained reference CSI. Is this right?
Yes, you are totally correct.
One thing that we observed is that when the receiver is doing ToF, it sends packets and this may change the phase difference across antennas. But, we have observed that at the transmitter side it does not change. So, if the Angle of Arrival (AoA) at the receiver side it is not as accurate as it should be, I would suggest you to try Angle of Departure (AoD). For computing the AoD, you have to invert the roles, so that the AP is the transmitter and the client is the receiver.
Let me know if you need further clarification :)
Best,
Alejandro

Thanks for your reply, I solved the puzzle. But I still have questions about your last statement.
I don't know why should I invert the roles for computing AoD when there are phase difference across antennas. I can't figure out the difference between the two cases, can you explain it in more detail? Thanks.

Hi,
We observed that for the ToF case, every router is sending packets and this affects the physical configuration at the receiver side; the calibration might be lost for computing AoA. But we also observed that the calibration for AoD is stable.
Typically, the AoA is estimated on the receiver side once a packet is coming from the client. My suggestion is different, I would suggest you to compute the AoD of the AP. To do so, the AoD is computed on the client side from the packets that were sent by the AP.
Let me know if you need further clarification.
Best,
Alejandro

I think I got it, the purpose of inverting the roles is to calculate AoD, and then the AoD of AP can be regarded as AoA previously used for localization. Thanks for reply !


text:
🛑 picto.ivdnt.org is down

In 81d4a09, picto.ivdnt.org (https://picto.ivdnt.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: picto.ivdnt.org is back up in 0ee3d61 after 34 minutes.

repo: INL/ivdnt-statusoverzicht


text:
Task submission

task1 修改

请不要使用手机拍屏，请使用嘉立创图片导出功能，或者使用电脑截图工具。

authors: WestNorth-Wolf kentemplate


text:
Added a cover image

I added a default cover image (tempalte/cover_image_placeholder.png)
First I had to initialize the values inside the template/isc_template_report.typ file
The cover_image_height is set to 10 by default and the default caption is "Cover image caption"
cover_image: none,

cover_image_height: 10cm,

cover_image_caption: "Cover image caption",

Then I added a check to see if a cover image is set and create a figure accordingly
  if cover_image != none{
    figure(image(cover_image, height: cover_image_height), caption: cover_image_caption)
  }

To position the image correctly, I had to add the following before the cover_image check
   v(10fr, weak: true)

To add the image, you have to add the wanted cover_image file name, cover_image_height and cover_image_caption to the project's variable inside the report.typ file
#show: project.with(
  title: "Rapport de projet ISC",
  course_name: "101.1 Programmation impérative",
  title_block: "Semestre automne 2023\nCours du Prof. P.-A. Mudry",
  cover_image: "cover_image_placeholder.png",
  cover_image_height: 10cm, // Default value = 10cm
  cover_image_caption: "Cover image caption", // Default value = "Cover image caption"
  sub_title: "Avec un joli sous-titre",
  authors: (
    "P.-A. Mudry",
    "Louis Lettry",
    "Pamela Delgado"
  ),
  logo: "isc_logo.svg",
  date: "5 décembre 2023",
  language: "fr", // Or en if required
  version: "1.0.0",
)

The final result looks like this :

Very nice feature and well written PR, thanks !

authors: MadeInShineA pmudry

repo: ISC-HEI/ISC-report


text:
Linear solver

Description
Adds the linsolve(A::MPO,b::MPS,x0::MPS) function and a test.
Additionally this PR does some "plumbing" of the various solver_... keyword args through the generic tdvp engine down to the call of the solver in tdvp_step.jl. This was pretty time consuming to do, so I posted a reply to issue #27 about whether it's worth having this level of detailed plumbing just to ensure a certain kind of error gets thrown (which is of course a worthy goal). There are downsides to the current approach, such as the difficulty of adding new kwargs and relatedly sometimes kwargs not getting passed by accident.
This PR adds the ProjMPS2 and ProjMPO_MPS2 types. The differences
of these from the ProjMPS and ProjMPO_MPS in ITensors.jl are

both use the AbstractProjMPO interface
the contract function of ProjMPO_MPS2 does not also multiply
by the ProjMPS2's inside. In the linsolve case
one would not want this. In the "weight penality" DMRG method,
my thinking is one could multiply by the ProjMPS2's explicitly
in the solver. To be discussed.
the ProjMPS2 type does not implement the same kind of contract
as the current ProjMPS, which is fairly special-purpose for the
weight-penalty DMRG method. It would be easy enough to implement
that, but also other methods building off this new design
and using the custom solver feature of this package.

@emstoudenmire
I have encountered some issues with a complex b vector. Do you have any idea what's wrong?
@testset "Linsolve" begin
  cutoff = 1E-11
  maxdim = 8
  nsweeps = 2

  N = 8
  s = siteinds("S=1/2", N)

  os = OpSum()
  for j in 1:(N - 1)
    os += 0.5, "S+", j, "S-", j + 1
    os += 0.5, "S-", j, "S+", j + 1
    os += "Sz", j, "Sz", j + 1
  end
  H = MPO(os, s)

  # Correct x is x_c
  #x_c = randomMPS(s; linkdims=4)
  x_c = randomMPS(s; linkdims=2) + 0.1im * randomMPS(s; linkdims=2)
  # Compute b
  b = apply(H, x_c; cutoff)

  x0 = randomMPS(s; linkdims=10)
  x = linsolve(H, b, x0; cutoff, maxdim, nsweeps, ishermitian=false, solver_tol=1E-6)

  #@show linkdims(x)
  @show norm(x - x_c)
  @test norm(x - x_c) < 1E-4
  @test false
end

julia> using Pkg; Pkg.status("ITensors")
Status `/sharehome/shinaoka/.julia/environments/v1.8/Project.toml`
  [9136182c] ITensors v0.3.20

norm(x - x_c) = 20.741214773766796
Linsolve: Test Failed at /sharehome/shinaoka/git/ITensorTDVP.jl/test/test_linsolve.jl:33
  Expression: norm(x - x_c) < 0.0001
   Evaluated: 20.741214773766796 < 0.0001

@emstoudenmire
I have encountered some issues with a complex b vector (or maybe with a complex x?). Do you have any idea what's wrong?

Thanks @shinaoka. It was definitley a bug - a missing call to dag (conjugate of an ITensor) in a couple of key places. I should have tested it with QNs which also ensures correct complex-number behavior. Now I've tested with both and it's working.
The code is still rather slow, but I'm erring on the side of accuracy with it right now. Please definitely try out different solver settings to see if you can get faster results but still good accuracy.

As of now the following code with fermions does not run
@testset "fermion" begin
    L = 12
    N = 6
    t = 1.0

    λ = - 100.0
    sites = siteinds("Fermion", L, conserve_qns=true)
    ampo = OpSum()

    for j=1:L-1
        ampo += -t , "C",j,"Cdag",j+1
        ampo += -t , "C",j+1,"Cdag",j
    end

    H = MPO(ampo,sites)

    state = append!([ "Occ" for n=1:N] , ["Emp" for n=1:L -N])
    ϕ = randomMPS(sites,state)
    ψ0 = randomMPS(sites,state)
    ψ = linsolve(H, ϕ, ψ0, -λ, 1.0)

end

And the errors:
Linsolve: Error During Test at /path/problem.jl:76
  Got exception outside of a @test
  MethodError: no method matching fill(::Int64, ::Nothing)
  Closest candidates are:
    fill(::Any, ::Type{SA}) where SA<:StaticArraysCore.StaticArray at ~/.julia/packages/StaticArrays/8Dz3j/src/arraymath.jl:28
    fill(::Any, ::SA) where SA<:StaticArraysCore.StaticArray at ~/.julia/packages/StaticArrays/8Dz3j/src/arraymath.jl:27
    fill(::Any, ::Dictionaries.AbstractDictionary) at ~/.julia/packages/Dictionaries/f4Buv/src/AbstractDictionary.jl:404
    ...
  Stacktrace:
    [1] process_sweeps(; kwargs::Base.Pairs{Symbol, Union{Nothing, Bool}, Tuple{Symbol, Symbol}, NamedTuple{(:nsweeps, :reverse_step), Tuple{Nothing, Bool}}})
      @ ITensorTDVP ~/.julia/packages/ITensorTDVP/bBxjh/src/tdvp_generic.jl:30
    [2] tdvp(solver::Function, PH::ITensorTDVP.ProjMPO_MPS2, t::Float64, psi0::MPS; kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:reverse_step,), Tuple{Bool}}})
      @ ITensorTDVP ~/.julia/packages/ITensorTDVP/bBxjh/src/tdvp_generic.jl:47
    [3] linsolve(A::MPO, b::MPS, x₀::MPS, a₀::Float64, a₁::Float64; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
      @ ITensorTDVP ~/.julia/packages/ITensorTDVP/bBxjh/src/linsolve.jl:47
    [4] linsolve(A::MPO, b::MPS, x₀::MPS, a₀::Float64, a₁::Float64)
      @ ITensorTDVP ~/.julia/packages/ITensorTDVP/bBxjh/src/linsolve.jl:22

Not sure if this has anything to do with the conserved QN

Thanks @keyi-ray-liu for the clear bug report. I'll investigate.

Hi @keyi-ray-liu , so the bug ended up being a logic issue in an internal function called _tdvp_compute_sweeps, and I just fixed it in the latest commit. Thanks again!

authors: emstoudenmire keyi-ray-liu shinaoka


text:
Rename ITensorVisualization to ITensorVisualizationBase

Also fix some bugs in when trying to visualization networks with nodes without edges.

Codecov Report

Merging #789 (d298946) into main (5f2f812) will decrease coverage by 0.08%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #789      +/-   ##
==========================================
- Coverage   75.63%   75.54%   -0.09%
==========================================
  Files          67       66       -1
  Lines        7469     7463       -6
==========================================
- Hits         5649     5638      -11
- Misses       1820     1825       +5

Impacted Files
Coverage Δ

src/ITensorVisualizationCore/visualize_macro.jl
0.00% <ø> (ø)

src/packagecompile/compile.jl
0.00% <0.00%> (-29.42%)
:arrow_down:

...nceOptimization/ContractionSequenceOptimization.jl
62.50% <0.00%> (-4.17%)
:arrow_down:

src/global_variables.jl
90.90% <0.00%> (-0.21%)
:arrow_down:

src/physics/sitetype.jl
92.26% <0.00%> (-0.05%)
:arrow_down:

src/ITensorChainRules/ITensorChainRules.jl
95.41% <0.00%> (-0.04%)
:arrow_down:

src/mps/abstractmps.jl
86.38% <0.00%> (-0.03%)
:arrow_down:

...ensorVisualizationCore/ITensorVisualizationCore.jl

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 5f2f812...d298946. Read the comment docs.

authors: codecov-commenter mtfishman


text:
Project 3 | query multiple tables

🚩I have made the following changes to complete Vet Clinic - Milestone/Project 3
Here is a summary of what has been done
Type of files changed/added

In this new Branch, I have ✏MODIFIED✏ the succeeding *📂 folders and/or **📄 files to complete this milestone's requirements
*📂 root/

**📄 data.sql ✏

I have inserted data into the owners and species tables
I have also updated the animals table with the data related to the owners and species tables.

**📄 queries.sql ✏

New queries have been made to the animals, owners and species tables.

**📄 schema.sql ✏

I have removed the species column and added the following:

species_id column.
owner_id column.
Two FOREIGN KEY constraints to the species and owners tables.

I created the two tables mentioned above:

species table.
owners table.

📸 Screenshots of queries made to the database

SQL Query Collection- Click to expand!

Thank you for taking the time to review this PR ⭐

If you require additional information or have any questions, please contact me on Slack as Arturo (Arthur) Emanuel Guerra Iturres. I'll be happy to help you out. 🎯

Hi @NahnahAJ! thank you for reviewing this PR too! :D I want to thank you all @bobb-Rob && @Davidosky007 for providing insightful feedback and pointing me in the right direction! 🎯 it is always very appreciated.
I wish you all a good week and happy coding! 🪂

repo: ITurres/vet-clinic-db


text:
🛑 Website is down

In 4653fd9, Website (https://pt.ivao.aero/portal) was down:

HTTP code: 502
Response time: 9797 ms

Resolved: Website is back up in e9d3c3b.

repo: IVAO-Portugal/status-page


text:
🛑 Website is down

In c2eee21, Website (https://pt.ivao.aero/portal) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Website is back up in f9afce5.


text:
password not accepted

Hey Idan.
I was depoying on another lab system... and ran into a weitd issue where the deployed rp4vm nodes arent accepting the password...  im going to redeploy with your latest and see if it fixes it.
line 235 mentions dns/ntp
line 627 i think is network related... maybe the new lab vc is setup oddly...
Completed successfully
---> OVA deployment completed successfully
-> Checking connectivity to vRPAs
---> vRPA Mgmt IP 10.204.8.125 is reachable
---> vRPA Mgmt IP 10.204.8.126 is reachable
---> All vRPAs are reachable
->The call POST https://10.204.8.125/deployer/rest/5_2/user/sessions failed with exception:401 Client Error:  for url: https://10.204.8.125/deployer/rest/5_2/user/sessions
Traceback (most recent call last):
File "rp4vms_deploy_v2.py", line 692, in
main()
File "rp4vms_deploy_v2.py", line 627, in main
token = init_rest_call("POST", loginUri, loginPayload, loginPayload)
File "rp4vms_deploy_v2.py", line 235, in init_rest_call
raise Exception('\033[91m\033[1m->Failed to query {}, code: {}, body: {}'.format(uri, response.status_code, response.text))
Exception: ->Failed to query https://10.204.8.125/deployer/rest/5_2/user/sessions, code: 401, body: "Authentication failed, invalid username or password"
[root@linuxhelper Downloads]#

tried latest version...
---> All vRPAs are reachable
-> Running deployment pre-validation checks
---> Transaction LOCAL_1 RUNNING 0%
---> Warnings detected in pre-installation validation
Several issues were found
-> Timezone detected: Europe/London
-> Searching for available vRPAs
---> Transaction LOCAL_2 RUNNING 0%
---> Transaction LOCAL_2 RUNNING 50%
-> DS for Repository Volume detected
-> Mgmt Network detected
-> Data Network detected
-> Building deployment configuration
-> Deploying RP4VMs cluster
---> Transaction DEPLOY_3 RUNNING 0%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 52%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 53%
---> Transaction DEPLOY_3 RUNNING 84%
---> Transaction DEPLOY_3 RUNNING 84%
---> Transaction DEPLOY_3 RUNNING 84%
---> Transaction DEPLOY_3 RUNNING 84%
->Error Connecting to https://10.204.8.125/deployer/rest/5_2/user/sessions: HTTPSConnectionPool(host='10.204.8.125', port=443): Max retries exceeded with url: /deployer/rest/5_2/user/sessions (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f058c9b4a58>: Failed to establish a new connection: [Errno 111] Connection refused',))

Statistic timeout while waiting to renew creds during cluster deployment. Will look into refactoring this monitoring aspect soon.

chat next week if free. i think it might be a dns/ntp issue my side.

Fixed in later versions of the solution

authors: HCIdiver IdanKen


text:
Silent renew flow

Hey Brock
I'm not entirely clear on the renewing of access tokens in a SPA scenario and extending the sliding expiration of session cookie on the authorization server.
Once the user logs in and gets the session cookie with sliding expiration, the SPA will periodically do a silent renew of access token, using prompt=none. Will this extend the sliding expiration on the session cookie? If yes, won't this keep extending also if user is inactive?
If not, what will extend the session cookie? Does SPA have to do a redirect in the main window without prompt=none in order to extend the expiration and if so, that would cause the SPA to have to reload which is not ideal.
Am I missing something?
Thanks

Will this extend the sliding expiration on the session cookie

Yes

Ok, so to followup, if the user walks away, how can the app tell oidc-client to stop renewing tokens silently so the session can expire without sliding it endlessly? Sort of goes against the session timeout principle otherwise.

You can do this manually in the access token expiring event -- explicitly do a silent renew only if the user is present.

@brockallen Is there anything else to do than setting the UserManagerSettings with automaticSilentRenew: true, for the silent renew flow?
I've tried also by setting a silent_redirect_uri but in both cases, there is no renew.
Here is the log:
UserManagerEvents.load
AccessTokenEvents.load
canceling existing access token timers
Timer.cancel:  Access token expired
access token present, remaining duration: -7
registering expired timer in: -6
Timer.init timer Access token expired for duration: 1
IFrameWindow._timeout
IFrameWindow._cleanup
rame window timed out
Uncaught (in promise) Error: Frame window timed out
    at t._error (oidc-client.min.js:74)
    at t._timeout (oidc-client.min.js:74)
    t._error @ oidc-client.min.js:74
    t._timeout @ oidc-client.min.js:74
    Promise rejected (async)
    e.signinSilent @ oidc-client.min.js:74

Uncaught (in promise) Error: Frame window timed out

My guess is that an error happened at IdentityServer -- check the logs

The log previously sent contained manual code inside the token expired event. I removed this one and still has nothing happening. The console.log in verbose is only having this data:
automaticSilentRenew is configured, setting up silent renew
oidc-client.min.js:1 UserManager.getUser
oidc-client.min.js:1 _loadUser
oidc-client.min.js:1 WebStorage
StateStore.get user:https://xxxxx.zzzzz.com:mmmmm
oidc-client.min.js:1 monitorSession is configured, setting up session monitor
```
Is there other logs? @brockallen

Do you have a log in your token server?

This is a corporate authentication server, I do not have any visibility.

You can do this manually in the access token expiring event -- explicitly do a silent renew only if the user is present.
Is there any specific configuration in the identity server to support the above ? or i just need to log the user out when he becomes idle ?

authors: MrDesjardins brockallen jelkhoury snothub

repo: IdentityModel/oidc-client-js


text:
userSignedOut not called when logged out from an other tab

edited
I want to popup a signing prompt if the user signs out of the token server, userSignedOut isn't hit.
userSignedOut = fromEventPattern(
  (handler: () => {}) => this.userManager.events.addUserSignedOut(handler),
  (handler: () => {}) => this.userManager.events.removeUserSignedOut(handler)
);
userSignedOut.subscribe(() => {
  // not hit
  this.userManager.signinPopup();
});

config:
response_type: 'id_token token',
scope: 'openid profile email afapps',
automaticSilentRenew: true,
filterProtocolClaims: true,
loadUserInfo: true,
userStore: new WebStorageStateStore({ store: window.localStorage }),
includeIdTokenInSilentRenew: false,
redirect_uri: `${window.location.protocol}//${window.location.host}/signin-callback.html`,
silent_redirect_uri: `${window.location.protocol}//${window.location.host}/signin-silent-callback.html`,
popup_redirect_uri: `${window.location.protocol}//${window.location.host}/signin-popup-callback.html`,
post_logout_redirect_uri: `${window.location.protocol}//${window.location.host}`,
revokeAccessTokenOnSignout: true,
monitorSession: true

The OP is dotnet core 2.0 IdentityServier4, not sure what else information is needed

I want to popup a signing prompt if the token gets revoked, userSignedOut isn't hit.

the token being revoked is unrelated to the user signing out of the token server.

@brockallen sorry wrong verbiage, edited

So basically the event not firing is the issue. Can you check the logs for activity with the check session feature?

I don't know what I'm looking for but I don't see anything. Even after 2000ms (Other Optional Settings.checkSessionInterval default) there is no Log or network traffic. I guess that means my issues is the check session feature isn't working?

I figured it out, I had endpoint metadata set but only the endpoints listed here: https://github.com/IdentityModel/oidc-client-js/wiki#provider-settings-if-cors-not-supported-on-oidcoauth2-provider-metadata-endpoint
Once I set check_session_iframe even though its not documented check session feature started working.

@bellamira
const userManagerSettings: UserManagerSettings = {
  ... other settings ...
  metadata: {
    ... other metadata settings ...
    check_session_iframe: `${OPBaseUrl}/connect/checksession`,
  }
};

Thank you! I added this to my code, but I'm still not seeing that addUserSignedOut event fire. Was there any config you had to do on the OP side to make this work?
I'm attempting to force the user to be logged out of the browser session after 30 seconds. Here is part of the ID Server config from the .net project, pertaining to this angular application:
{
    "Enabled": true,
    "ClientId": "MyClientId",
    "ClientName": "MyClientName",
    "AllowedGrantTypes": [ "implicit" ],
    "RequireConsent": false,
    "UserSsoLifetime": 30,
    "AccessTokenLifetime": 30,
    "IdentityTokenLifetime": 30,
    "AllowAccessTokensViaBrowser": true,
    "AllowedCorsOrigins": [ "https://my.url.domain" ],
    "RedirectUris": [
        "https://my.url.domain/assets/oidc-login-redirect.html",
        "https://my.url.domain/assets/silent-redirect.html"
    ],
    "PostLogoutRedirectUris": [ "https://my.url.domain/?postLogout=true" ],
    "AllowedScopes": [
        "openid",
        "profile",
        "email",
        "SomeApiFullAccess",
    ]
},

And here is my configuration:
var config = {
    authority: this.settingsService.settings.stsAuthority,
    client_id: 'MyClientId',
    redirect_uri: `${this.settingsService.settings.clientRoot}assets/oidc-login-redirect.html`,
    scope: 'openid profile SomeApiFullAccess',
    response_type: 'id_token token',
    post_logout_redirect_uri: `${this.settingsService.settings.clientRoot}?postLogout=true`,
    userStore: new WebStorageStateStore({ store: window.localStorage }),
    accessTokenExpiringNotificationTime: 10,
    metadata: {
        issuer: this.settingsService.settings.stsAuthority,
        authorization_endpoint: `${this.settingsService.settings.stsAuthority}connect/authorize`,
        userinfo_endpoint: `${this.settingsService.settings.stsAuthority}connect/userinfo`,
        end_session_endpoint: `${this.settingsService.settings.stsAuthority}connect/endsession`,
        check_session_iframe: `${this.settingsService.settings.stsAuthority}connect/checksession`,
    },
};

this.userManager = new UserManager(config);

this.userManager.getUser().then(user => {
    if (user && !user.expired) {
        this.user = user;
    }
});

this.userManager.events.addAccessTokenExpiring(() => {
    // works
    console.log("token expiring in 10 seconds...");
})

this.userManager.events.addAccessTokenExpired(() => {
    // works
    console.log("token expired");
})

this.userManager.events.addUserSignedOut(() => {
    // does not work
    console.log("signed out");
})

Also I forgot to mention this has nothing to do with closing the session manually, from the same tab or otherwise. I'm just trying to automatically log out the user from the client (and therefore the client from the OP) automatically after a certain amount of time. For now, it's set to 30 seconds just for testing purposes.

I don't believe so, I don't develop on the OP side, its "just been working". Here is my full config:
  const userManagerSettings: UserManagerSettings = {
    /* OpenID Connect settings */
    client_id: clientId,
    authority: OPBaseUrl,
    response_type: 'id_token token',
    scope: 'openid profile email myscope',
    automaticSilentRenew: true,
    filterProtocolClaims: true,
    loadUserInfo: true,
    includeIdTokenInSilentRenew: false,
    revokeAccessTokenOnSignout: true,
    redirect_uri: `${window.location.protocol}//${window.location.host}/signin-callback.html`,
    silent_redirect_uri: `${window.location.protocol}//${window.location.host}/signin-silent-callback.html`,
    popup_redirect_uri: `${window.location.protocol}//${window.location.host}/signin-popup-callback.html`,
    post_logout_redirect_uri: `${window.location.protocol}//${window.location.host}`,
    metadata: {
      issuer: servers.Authority.ApiURL,
      authorization_endpoint: `${OPBaseUrl}/connect/authorize`,
      userinfo_endpoint: `${OPBaseUrl}/connect/userinfo`,
      end_session_endpoint: `${OPBaseUrl}/connect/endsession`,
      jwks_uri: `${OPBaseUrl}/.well-known/openid-configuration/jwks`,
      check_session_iframe: `${OPBaseUrl}/connect/checksession`,
      introspection_endpoint: `${OPBaseUrl}/connect/introspect`,
      revocation_endpoint: `${OPBaseUrl}/connect/revocation`,
      token_endpoint: `${OPBaseUrl}/connect/token`
    }
  };

Thanks for your help! I'm still not getting the event to fire but I am happy to see that my configuration is at least on the right track. Thanks again.

Did you find a solution to other tabs not receiving event notifications during a log out? I'm using
'new WebStorageStateStore({ store: window.localStorage })' and listening to 'addUserSignedOut' event, but no events are received in other tabs?

@buzzbonner24  What I ended up doing was changing from local storage to session storage and then forcing logout on the other tabs. oidc-client uses session storage by default, so just remove this line from the config to default to session storage:
// remove from config
userStore: new WebStorageStateStore({ store: window.localStorage })

Then I use these two functions in my auth service to handle logout events:
// handle automatic logout event
this.userManager.events.addAccessTokenExpired(() => {
    this.logout();
})

// if user clicks 'logout' from one tab, force logout on all other tabs
this.userManager.events.addUserSignedOut(() => {
    this.logout();
})

I hope that helps!

authors: bellamira brockallen buzzbonner24 gatimus william-lohan


text:
feat: add metadata_store to context

Added a function that collects metadata for swamid-satosa metainfo plugin for non-SAML backends. The metadata is collected into dictionary and added to the context. The functionality added is similar to saml backend where the context is decorated with metadata of mdstore type.
All Submissions:

[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Have you added an explanation of what problem you are trying to solve with this PR?
[x] Have you added information on what your changes do and why you chose this as your solution?
[ ] Have you written new tests for your changes?
[x] Does your submission pass tests?
[x] This project follows PEP8 style guide. Have you run your code against the 'flake8' linter?

relates to https://github.com/SUNET/swamid-satosa/pull/2

authors: kofzera melanger

repo: IdentityPython/SATOSA


text:
docs: update ef quickstart image to rc5

Image for Entity framework database was out of date with new resources instead of scopes.

Hi @timscriv, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, DNFBOT;

ah, thanks!

authors: brockallen dnfclas timscriv


text:
Several warnings in the webkitgtk_2.30.X in gatesgarth

WARNING: /home/bot/yocto-wandboard-manual/sources/meta-webkit/recipes-browser/webkitgtk/webkitgtk_2.30.4.bb: Recipe inherits features_check but doesn't use it
WARNING: /home/bot/yocto-wandboard-manual/sources/meta-webkit/recipes-browser/webkitgtk/webkitgtk_2.30.4.bb: Recipe webkitgtk sets S variable with trailing slash '/home/bot/yocto-wandboard-manual/builds/raspberrypi3-mesa-wpe-nightly/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/webkitgtk/2.30.4-r0/webkitgtk-2.30.4/', remove it

Fixed in https://github.com/Igalia/meta-webkit/pull/234

repo: Igalia/meta-webkit


text:
Merge snabbco/snabb/wingo-next into igalia/snabb/lwaftr

Merge snabbco/snabb/wingo-next into igalia/snabb/lwaftr.

lgtm to merge when the bots come back and the integration testsare green

authors: teknico wingo

repo: Igalia/snabb


text:
Atualizando poesias

Olá ,
Tentei rodar algumas poesias na aplicação e elas ficam travadas (não tocam), entao fui verificar alguns links e , ou forma removidos ou sensurados.
Então estou atualizando e removendo os que não existem mais.
Posso submeter uma PR com essas alterações ?

sim claro, muito obrigado pela revisão =)

Só estou terminando.
Estou na metade do arquivo .json
Só vim verificar antes se poderia submeter uma PR .
Parabéns pelo projeto , dei muita risada hahaha

authors: IgorRozani jhonatasmatos

repo: IgorRozani/filosofunk